C++回顾之函数

  1. 局部静态对象:第一次经过对象定义语句时初始化,之后不再执行初始化语句,直到程序终止对象才会被销毁。

  2. 给函数传递参数时尽量使用引用避免拷贝,同时如果函数无须改变引用形参的值,最好将其声明为常量引用,这很重要,能够避免很多错误。

  3. 顶层const和底层const。顶层const是指针本身是const不可改变值,底层const是指针指向的对象是const不可修改指向对象的值。

  4. 函数返回局部对象的引用和局部对象的指针都是错误的。函数执行完毕后,局部对象已经不存在了。

  5. C++11规定,函数可以返回花括号包围的值的列表。此次返回的列表用来对表示函数返回的临时量进行初始化。如:

    vector<string> process() {
        return {"sfdf", "sfdfds"};
    }
  6. 这是合法的,常量会调用常量,非常量会调用非常量。

    void fcn(const int &i) {}
    void fcn(int &i) {}
    
    void fcn(const int *i) {}
    void fcn(int *i) {}
  7. 默认实参的初始值:局部变量不能作为默认实参。

  8. 在函数的返回类型前加上关键字inline可以变为内联函数,要放在定义处而不是声明处。内联函数放于头文件中。

  9. 重载函数调用时的规则:先确定能够匹配的,再找最佳匹配(每个实参的匹配都不劣于其他,至少有一个优于其他)。

  10. 函数指针:

bool (*pf) (const string &, const string &);//未初始化
pf = lengthCompare;
pf = &lengthCompare;//等价

void a(bool (*pf) (const string &, const string &));//函数指针形参

返回指向函数的指针:223页。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值