C++ Primer 5e chapter 6
2015-08-20 19:30
302 查看
1、函数无法返回数组,可以返回数组的指针;
2、函数参数传递方式,引用传递,值传递,(指针传递类似于值传递,局部拷贝改变不改变实体),引用或者常引用是比较合适的方法;
3、传递参数忽略顶层const,也就是说形参是const,实参可以传递const或者非const;同时由于形参忽略const,所以不能如此重载一个函数,重定义;
4、可变形参的函数:类型相同时,可以传递initializer_list标准库类型,类似于vector,传递它后可以用它的迭代器访问不同的个数的形参;
5、省略符形参,void foo(int i , ...);
6、返回值为引用类型的时候,注意该引用所引用的对象,在函数执行完后应该还继续存在,不要返回局部对象的指针或是引用;
7、引用函数可以返回左值,其余均为右值;
8、尾置返回类型:auto func(int i) ->int(*)[10],等价于int (*func(int i))[10];还可以使用decltype;
9、函数重载不允许除了返回值,其他均一致;
10、默认实参,含有默认实参的时候,调用可以省略该实参,注意1一个形参有默认值,其后面的都得有,2调用的时候也是一样,要使用一起使用;
11、inline关键字,编译器可以忽略该请求;
12、C++11,constexpr 函数 constexpr int foo(),注意函数的返回值以及所有形参都是字面值类型,函数体中有且只有一条return语句;编译器可以在编译之前确定其值,;
13、assert(),预处理宏,表达式为真,什么都不做,为假,输出信息停止运行,用于检查程序的输入合法性;用于验证那些的确不可能发生的事情;
14、NDEBUG预处理变量,assert行为依赖于NDEBUG变量,如果定义了该变量,assert则什么都不做,没定义,则会进行检查;
15、添加调试代码,利用 #ifdef NDBUG #endif;
16、调试信息,__func__ __TIME__ LINE DTAE FILE等等;
17、重载函数尽量不要使用强制类型转换;
18、函数指针由返回值和形参列表决定,将函数名直接改为 *pf;
19、不能传递函数形参,但是可以传递函数指针的形参;
20、不能返回一个函数类型,但是可以返回一个指向函数的指针; using pf = int(*) (int ,int *);
2、函数参数传递方式,引用传递,值传递,(指针传递类似于值传递,局部拷贝改变不改变实体),引用或者常引用是比较合适的方法;
3、传递参数忽略顶层const,也就是说形参是const,实参可以传递const或者非const;同时由于形参忽略const,所以不能如此重载一个函数,重定义;
4、可变形参的函数:类型相同时,可以传递initializer_list标准库类型,类似于vector,传递它后可以用它的迭代器访问不同的个数的形参;
5、省略符形参,void foo(int i , ...);
6、返回值为引用类型的时候,注意该引用所引用的对象,在函数执行完后应该还继续存在,不要返回局部对象的指针或是引用;
7、引用函数可以返回左值,其余均为右值;
8、尾置返回类型:auto func(int i) ->int(*)[10],等价于int (*func(int i))[10];还可以使用decltype;
9、函数重载不允许除了返回值,其他均一致;
10、默认实参,含有默认实参的时候,调用可以省略该实参,注意1一个形参有默认值,其后面的都得有,2调用的时候也是一样,要使用一起使用;
11、inline关键字,编译器可以忽略该请求;
12、C++11,constexpr 函数 constexpr int foo(),注意函数的返回值以及所有形参都是字面值类型,函数体中有且只有一条return语句;编译器可以在编译之前确定其值,;
13、assert(),预处理宏,表达式为真,什么都不做,为假,输出信息停止运行,用于检查程序的输入合法性;用于验证那些的确不可能发生的事情;
14、NDEBUG预处理变量,assert行为依赖于NDEBUG变量,如果定义了该变量,assert则什么都不做,没定义,则会进行检查;
15、添加调试代码,利用 #ifdef NDBUG #endif;
16、调试信息,__func__ __TIME__ LINE DTAE FILE等等;
17、重载函数尽量不要使用强制类型转换;
18、函数指针由返回值和形参列表决定,将函数名直接改为 *pf;
19、不能传递函数形参,但是可以传递函数指针的形参;
20、不能返回一个函数类型,但是可以返回一个指向函数的指针; using pf = int(*) (int ,int *);
相关文章推荐
- C++primer学习笔记(一):第二章.变量和基本类型
- c++中 string 转 __time64_t
- [iOS]C语言知识点系列视频
- 不要以多态的方式处理数组(More Effective-C++_3(基础))
- hdu1069//zoj1093 Monkey and Banana (排序,dp)
- Event C++初识
- C++ 头文件
- C++友元类【未完待续】
- 初步篇11算术运算符与算术表达式项目5-坐标转换
- c++模板函数声明定义分离编译错误详解
- C++开源库
- C++常见错误及解决方法,持续更新
- 初步篇11算术运算符与算术表达式项目4玩数字
- [黑马程序员]C语言指针深入理解
- 初步篇11算术运算符与算术表达式项目3小明买花问题
- Gcc与Make编译C/C++学习
- 初步篇11算术运算符与算术表达式项目2分离整数和小数部分
- 黑马程序员-[OC语言] 第七篇:foundation框架之NSArray、NSDitctionary 基本用法
- 初步篇11算术运算符与算术表达式项目1分离各位数
- 1.DB-Mysql++、Mysql的c++封装类的编译