您的位置:首页 > 其它

类对象的赋值和复制

2015-09-15 23:31 141 查看
对象的赋值可以采用重载运算符的方法实现:

对象名1 = 对象名2;

对象的复制可以采用复制构造函数的方法实现:

(1)类名 对象2(对象1)

(2)类名 对象2 = 对象1

这两种方法调用的都是复制构造函数而不是构造函数,故需要提前声明复制构造函数;若没有声明复制构造函数,则这两种方法在编译时均能通过,但也没有调用构造函数,程序运行结束时却会调用析构函数。

class myClass

{

public:

myClass();//构造函数

myClass(const myClass &A);//复制构造函数

~myClass();//析构函数

private:

static int a;//调用构造函数的次数

static int b;//调用复制构造函数的次数

static int c;//调用析构函数的次数

};

//构造函数

myClass::myClass()

{

a++;
cout << "this is in Constructor:  "<< a << endl;


}

//复制构造函数

myClass::myClass(const myClass &A)

{

c++;
cout << "this is in Copy-Constructor:   " << c << endl;


}

//析构函数

myClass::~myClass()

{

b++;
cout<<"this is in Deconstructor:   "<< b << endl;


}

//类的静态成员变量的初始化

int myClass::a = 0;

int myClass::b = 0;

int myClass::c = 0;

int main(void)

{

myClass A;//调用构造函数
myClass B = A;//调用复制构造函数
myClass C(A);//调用复制构造函数

myClass D;//调用复制构造函数
D = A;//运算符重载

return 0;


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: