C++小记

1、面向对象的核心概念:封装,继承,多态

2、结构变量的每个成员都会占据不同的内存单元,而联合变量的每个成员都共享同样的内存单元。即一个联合变量的大小实际上是他占内存最多的那个成员的大小。

3、malloc和free的不足:

  • malloc参数是以字节计的内存大小,程序员需要自己计算待分配单元的字节数。
  • malloc返回值是无类型指针void*,需要程序员自己转换成合适的指针类型。

     使用new和delete的优点为:

  • new参数是待分配单元的数目,它自动计算要分配类型的大小,不用给出字节数。
  • new自动返回正确的指针类型,不必转换。
  • 可以用new将分配的存储空间进行初始化。

4、带有参数的宏很受限,他是无类型机制,每个变元仅能被使用一次,有时产生不可期望的副作用。为此定义内联函数,既集合函数的复杂性,又体现宏的替换性。

5、静态数据成员属于类,而不属于对象。静态数据成员的定义在类内,在类外进行说明。

6、构造函数的初始化方式:

  • 在构造函数内用赋值语句
  • 用构造函数的初始化列表方式

注意:一些特殊成员,比如常量成员和引用成员,都必须在初始化列表中进行。

7、一个类如果有const成员或引用成员,就不能使用缺省的构造函数,必须用户自己定义。

8、一般情况下,拷贝构造函数都很好工作。但存在一些特殊情况,比如说函数中形参p的构造函数如果是缺省的话,会少掉一些操作,所以要显式拷贝构造函数。详细看C+书的P116。

9、一个成员函数的原型后面跟一个const,该函数称为const成员函数,特点是该函数不能修改this所指的对象的成员。

this指针主要用在运算符重载和自引用的场合。

猜你喜欢

转载自www.cnblogs.com/hotsnow/p/9772453.html