(六)函数

本文探讨了C++编程中的多种技巧与注意事项,包括自动对象的生命周期管理、函数声明与定义的区别、形参使用指针还是引用的选择策略、利用常量引用提高代码效率、尾置返回类型与decltype的应用、函数重载的细节、默认实参的设置原则、constexpr的使用场景、内联函数的定义以及assert在类内部的安全性监测等方面。
摘要由CSDN通过智能技术生成

需要注意求值顺序在很多时候是不确定的

我们把只存在于块执行期间的对象称为自动对象,当块执行结束后,自动对象销毁,值不在可靠.

如果一个函数永远也不会被用到,那么可以只声明但没有定义.

形参使用指针还是引用?都有可能为空,监测方案.建议使用引用代替指针?考虑!

尽量使用常量引用作为参数,这样const对象,字面值都可以传进来.

如果所有的实参类型都相同,可以传递一个名为initializer_list的标准库类型.

...参数,省略符参数,可以接受不定数量个参数

尾置返回类型 auto func(inti) -> int(*)[10];

decltype 推断类型,过程中不会实际运算执行被推断的表达式.

函数重载,所有重载的函数必须在相同的作用域中,否则将会屏蔽外层

void print(const string&);
void print(double);

void fooBar(int ival)
{
  void print(int);
  print(3);//不存在重载,因为在当前作用域中只有一个函数,屏蔽了外层名字.
}
默认实参,一旦某个形参被赋予了默认值,它后面所有的形参都必须有默认值

class some
{

  int Proc(int c,int b = 5,int a);//error,b有默认参数,则后面的c也必须有默认实参.
}
在给定的作用域中一个形参最多只能被赋予一次默认实参,后续声明可以为之气那的没有默认值的形参添加默认实参.

string screen(int a = 5, int b, int c);
string screent(int a,int b = 6,int c);
局部变量不能作为默认实参,除此之外,只要表达式的类型能转换成形参所需要的类型,表达式就能作为默认实参.

constexpr 在编译时就能确定字面值的类型

内联函数和constexpr函数可以在程序中被多次定义

assert,类内部应该大量使用assert监测安全性、合法性,与类所接触的所有input输入,都应该检查,发现问题throw

__FILE__存放文件名的字符串字面值

__LINE__存放当前行号的整型字面值.

__TIME__编译时间

__DATE__编译日期

函数匹配,从候选函数中选出可执行函数



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值