全球旧事资料 分类
创建时使用特定的值构造对象,或者说将对象初始化为一个特定的状态。特点:在对象创建时或
ew类名时由系统自动调用。如果程序中未声明,则系统自动产生出一个默认形式的构造函数,只有程序中定义
f有构造函数,系统不再自动生成缺省的构造函数缺省构造函数类名::缺省构造函数名()函数名必须与类名相同不能指定函数返回类型参数可以有,也可以无,参数可以带默认形参值,所以一个类可以有多个构造函数,从而构造函数可以重载。如有一个类A,当执行语句Aa;时将自动调用该类的无参构造函数或缺省的构造函数或带默认形参值的构造函数,但无参构造函数和带默认形参值的构造函数二者同时出现容易出现调用时引起二义性允许是内联函数利用构造函数创建对象有两种方法:
用构造函数之间创建对象:类名对象名实参表;如poi
tp(1,2);利用构造函数创建对象时,通过指针和
ew来实现:
类名指针变量
ew类名实参表;如Ap
ewA1,2;注意类A声明对象指针并不调用构造函数,而是通过
ew创建临时对象调用构造函数,所以该语句只调用构造函数1次12、拷贝构造函数拷贝构造函数是一种特殊的构造函数,其形参为本类的对象引用,作用是用已经存在的对象初始化另一个同类的新对象。类名(类名对象名);拷贝构造函数如类A拷贝构造函数为:AAx;拷贝构造函数特点:也是构造函数,所以其函数名与类名相同,没有返回值只有一个参数,并且是本类的对象引用,所以一个类只能有一个,不能重载每一个类都有一个拷贝构造函数,如果没有定义,系统会自动生成一个缺省的调用拷贝构造函数3种情况:当用类的一个对象去初始化该类的另一个对象时系统自动调用拷贝构造函数实现拷贝赋值。若函数的形参为类对象,调用函数时,实参赋值给形参,系统自动调用拷贝构造函数。当函数的返回值是类对象时,系统自动调用拷贝构造函数。深拷贝和浅拷贝:缺省的拷贝构造函数所实现的数据成员逐一赋值就是浅拷贝,当类中有指针时,需要自定义拷贝构造函数,谓深拷贝。13、析构函数完成对象被删除前的一些清理工作。特点:析构函数与构造函数名相同,但它前面必须加一个波浪号析构函数没有返回值析构函数没有参数,所以一个类中只能有一个析构函数,所以析构函数不能重载当撤销对象时,或delete对象指针编译系统自动调用析构函数如果没有定义析构函数,系统自动生成一个缺省的析构函数类名::缺省析构函数名()14、成员初始化列表在r
好听全球资料 返回顶部