C++

默认构造函数:调用时不需要参数的构造函数

  1.在定义一个对象(实例化)时,没有提供初始化就会调用默认构造函数。

  2.若类没有定义任意构造函数,编译器自动生成默认构造函数。

  3.若定义了构造函数,没有定义默认构造函数,定义一个对象时,编译器报错(编译器不再提供默认构造函数)。

  4.有默认参数值得构造函数,也能当作默认构造函数。

  5.只有一个参数的构造函数可用于隐式类型转换,这需要特别注意。因为给需要一个该类型作为参数的函数传递一个值,编译器会隐式调用只有一个参数的构造函数把该值转换为一个类型。

  故一般把此类构造函数声明为explicit。

副本构造函数:默认副本构造函数

  只要给函数按值传送对象,就会调用副本构造函数。

  副本构造函数必须接受同一类型的参数,且为const引用。

  创建对象时,不必显示调用副本构造函数。只要把对象作为一个参数按值传送给函数,编译器就会调用副本构造函数,制作对象的副本。

默认初始化:

  在类定义中,仅包含函数的声明,默认的参数值应该放在声明中,而不是函数定义中。

类中的const:

  声明为const的对象,只能调用const成员函数。

类中的静态数据成员:

  1.在类的外部定义它,int Bpx::objectCount = 0;

  2.即使静态数据成员为私有的,也可以这么初始化,事实上这也是唯一的方式

  3.定义中不能使用static,

  4.定义语句放在Box.cpp文件中。

  5.static数据成员可以用const成员函数修改,因为不是对象的一部分,是属于类的。

类的静态成员函数:

  1.不能声明为const,因为类的静态成员函数与类对象无关,故没有this指针,故不能使用const。

  2.静态成员函数不能访问调用它的对象,因为没有this指针。

  3.把同一个类的对象作为一个参数传递给静态成员函数,则该函数可以访问该对象(必须使用objectName.shuxingming;的方式来访问),且可以访问私有成员。

const成员函数:

  声明为const的成员函数,在定义时也要声明为const。 

const数据成员:

  只能通过构造函数的初始化列表来初始化类的引用数据成员。引用不能用赋值语句初始化。

 

类的析构函数:

  1.析构函数没有参数,没有返回值

  2.类的析构函数只有一个。

  3.如果在对象中动态分配了内存,就必须实现该类析构函数。

 

posted on 2015-04-13 23:20  OrdinaryMiracle  阅读(125)  评论(0编辑  收藏  举报

导航