目录
6、常量成员函数 : const member functions
7、参数传递: pass by value vs. pass by reference(to const)
8、返回值传递:return by value vs. return by reference(to const)9、friend 友元
1、C与C++的区别:
c语言中,数据和函数分开的,缺点是数据必须是全局的,这样函数都可以访问,安全性不高,但是C++中,数据和函数包在一起,已这个混合体为整体,一起用,安全性高了,见图一。
2、c++的头文件与类的声明
- 头文件与程序之间关系:
- 头文件中的防卫式声明:使得编译器可以自己处理include文件的顺序,不会有重复的include.
-
类的声明
3、inline(内联)函数
- 函数定义在class内部完成的函数,inline像宏(macro)一样,有宏的优点没有他的缺点,但是只有简单的函数才可以inline,会比较快。(复杂函数即使设置为内联函数,但最终由编译器决定是否是内联函数)
4、access level(访问级别)
-
数据包起来,通过函数传出去,保证安全性
5、构造函数
- 在创造对象时,自动调用的函数就是构造函数。
- 构造函数的名称一定要和class名一样
- 构造函数可以有默认值
- 没有返回值类型
- 内部是把收到的参数给对象的值赋值,最好用初始化列表(只有构造函数才有),当然也可以在函数体内加。
- 程序中不可能调用构造函数,他是在创建对象时自动调用的。
- 构造函数常常可以有多个定义—重载(可以有多种初始化的方式),但是当计算机不能分别到底是那种形式时,就会报错。
-
构造函数被放在private表示该函数不能被外界调用(不能创建对象),常用在某种类只有一个自己的对象,如Singleton模式
6、常量成员函数 : const member functions
- 不改变数据值的成员函数要加const.
7、参数传递: pass by value vs. pass by reference(to const)
- 传 值(by value):value多大就整个传过去。
- 传引用(by reference):类似于c的指针那么快,把value的地址传过去。
- 尽量传引用,不要传变量(4个字符)。
- 但是传指针或者引用时,函数改了值,会影响我,所以此时传给const.
8、返回值传递:return by value vs. return by reference(to const)
-
尽量用reference
9、friend 友元
- 同一个类的各个对象互为友元,可以传递数据。
10、定义类的注意事项
- 数据在pritvate
- 传值(返回)尽量以引用reference传递
注意:不推荐pass(return) by reference的几种情况:
- 函数操作结果是一个临时变量,就不要传引用,因为引用会使得在外部也看到临时变量,会出问题。
- 引用最大的特点就是他会改变相关联的的几个变量值。
- 函数body中该加const要加
- 构造函数赋值尽量用参数列表传递
11、