C++语法总结

类模板的作用:
1:增加类之间代码的通用性,例如:Point<int>, Point<float>, Point<double>

2:inline的作用,内敛函数; 建议编译器把函数内的内容,放到调用时执行;inline 关键字是一种对编译器的建议(注意只是建议,编译器最终是否真正内联函数由编译器自行决定),用于提示编译器将该函数的代码在调用点处展开,而不是像普通函数那样进行常规的函数调用(涉及压栈、跳转、返回等操作)例如

inline int add(int a, int b ) { return a+b;}

int result = add(3, 5);
// 就相当于调用 int result = 3+5 ; 对于简单的函数非常有用能提高效率

 3:======= const 的作用 ======

// 1:PoseGraph2D* const parent_; 和 const PoseGraph2D* parent_; 的区别

    //***** PoseGraph2D* const parent_; *****
    指针本身是常量:
    这里的 const 关键字修饰的是指针 parent_ 本身,而不是指针所指向的对象。
    这意味着 parent_ 指针在初始化之后,不能再指向其他对象。

    PoseGraph2D* const parent_ = new PoseGraph2D();
    // 以下操作会导致编译错误,因为 parent_ 指针本身是常量
    parent_ = new PoseGraph2D(); 
    parent_->someMember = 42; // 假设 someMember 不是 const 成员,这是允许的



    //**** const PoseGraph2D* parent_; ****
    指针所指向的对象是常量:
    这里的 const 关键字修饰的是指针 parent_ 所指向的 PoseGraph2D 对象,而不是指针本身。
    这意味着不能通过 parent_ 指针修改其所指向的 PoseGraph2D 对象的成员。

    const PoseGraph2D* parent_ = new PoseGraph2D();
    // 以下操作会导致编译错误,因为 parent_ 指向的对象是常量
    parent_->someMember = 42; 
    parent_ = new PoseGraph2D(); // 这是允许的,因为指针本身不是常量

//2:  const 在函数前  和 函数后的区别
    
     结论: 在函数前, 表示返回值不能被修改; 在函数后, 表示改函数不会修改任何成员变量和调用任何非const 的成员函数;
    
    
//3: 函数内的 const 修饰成员变量 void printValue(const int& val) {}
    
     这个表示 val 在函数内不能被修改,同时传入引用可以避免拷贝带来的耗时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值