首页 > 代码库 > 构造函数

构造函数

  一。构造函数:当创建一个对象时,构造函数会被自动调用,主要是用来对数据成员进行初始化和其他需要处理的事务。

  二。构造函数的性质:

    1.构造函数与类名相同且不可以有返回值;

    2.可以对构造函数进行重载,但是每个构造函数必须拥有各不相同的函数署名;

    3.若C是一个类,可以定义任意维数的C对象数组,若C有默认构造函数,数组中每一个C对象都会调用默认构造函数;

  三。什么时候编译器不会为类生成一个共有的默认构造函数呢?

    1.一个类显示的声明了任何构造函数;

    2.一个类声明了一个非公有的默认构造函数;

  四。拷贝构造函数创建一个新的对象,此对象是另外一个对象的拷贝品。

    1.拷贝构造函数的两种原型:Person(Person&),Person(const Person&);两种原型的参数类型都是引用;

    2.拷贝构造函数可以有多于一个的参数,但是第一个以后的所有参数必须有默认值;

     例如:Person(const Person&p,bool married = false);

    3.若类的设计者不提供拷贝构造函数,编译器会自动生成一个,将源对象的所有数据成员的值逐一赋给目标对象的数据成员。

  五。1.若一个类包含指向动态存储空间指针类型的数据成员,就必须要为这个类设计构造函数。

    2.由于默认的拷贝构造函数只会拷贝类的成员,因此,拷贝的类和源类指向同一个空间;

    3.我们自己设计的拷贝构造函数,确保二者指向不同的存储区域,虽然两块存储区域中保存着相同的字符串。