类对象的赋值和复制

对象的赋值可以采用重载运算符的方法实现:
对象名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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值