内容
- 初识auto
auto
如果不在返回auto的函数的返回值类型有冲突的后面加 -> int,则会编译不通过,因为auto无法推断到底返回浮点型还是整型,则可以加 -> int进行声明:返回值统一强转为int。
这种auto在前,返回值类型在后的用处还有一个好处就是:如果返回值类型特别复杂、特别长,则可以先写auto代替,把又臭又长的名字放在后缀,起到了使代码美观的作用(避免头重脚轻)。
1 | auto show(int v) |
1 | auto show(int v) -> int |
如果不在返回auto的函数的返回值类型有冲突的后面加 -> int,则会编译不通过,因为auto无法推断到底返回浮点型还是整型,则可以加 -> int进行声明:返回值统一强转为int。
这种auto在前,返回值类型在后的用处还有一个好处就是:如果返回值类型特别复杂、特别长,则可以先写auto代替,把又臭又长的名字放在后缀,起到了使代码美观的作用(避免头重脚轻)。
1 | auto show(int v) |
1 | auto show(int v) -> int |
有三种形式:
1 | int main() |
委员会推荐新出的大括号形式的初始化,最通用,相比于圆括号来说更少有歧义。
冒号后面的初始化列表,除了assignment形式,小括号、大括号都可以。现代C++更推荐大括号。
1 | class Test |
初始化列表的初始化是先于构造函数的,即给对象创建空间后立马填成员的值。
而构造函数中赋值,是对象创建完毕后才去执行。
如果要初始化的东西是常量,则C++11有语法糖:直接在成员变量后加初始化括号。
1 | class Test |