浅谈c++复制构造函数和赋值操作符。

何时调用:

1,如果变量没有声明过,那么将会调用复制构造函数。如:

A a;

A a2=a;//调用复制构造函数将a复制到a2.


2,如果变量已经声明过,将会调用赋值操作符。

A a;

A a2;

a2=a;//调用赋值操作符将a的值复制到a2


备注:不管是复制构造函数还是赋值操作符,都要注意类成员存在指针的情况。这种情况下,如果采用浅复制那么应该使用引用计数;当然可以采用深复制方式使每个对象拥有独立的副本,不过这样消耗内存和时间。


3,关于析构函数何时为虚拟的问题。一般是在拥有子类的父类中,需要将其析构函数声明为虚拟的,以便使子类的析构函数得到调用。


发布了50 篇原创文章 · 获赞 0 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章