淘先锋技术网

首页 1 2 3 4 5 6 7

目录

1、C与C++的区别:

2、c++的头文件与类的声明

3、inline(内联)函数

4、access level(访问级别)

5、构造函数

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的几种情况:

  1. 函数操作结果是一个临时变量,就不要传引用,因为引用会使得在外部也看到临时变量,会出问题。
  2. 引用最大的特点就是他会改变相关联的的几个变量值。

  • 函数body中该加const要加
  • 构造函数赋值尽量用参数列表传递

11、