- copy constructor也分爲trivial和nontrivial兩種
- 如果class展現出bitwise copy semantics(按位拷貝語義),則不會構造出
copy constructor。 - 反之,會構造出一個copy constructor。
- 如果class展現出bitwise copy semantics(按位拷貝語義),則不會構造出
- 不要bitwise copy semantics
- 內含一個擁有nontrivial copy constructor的成員變量
- base class 存在一個nontrivial copy constructor
- virtual function
還是vptr的問題,如果直接按位拷貝,也就是使用derived class來給
base class初始化,那麼按位拷貝就會使得base class的vptr是derived的vptr
那就出錯了。
比如:
D d;
B b =d;
如果按位拷貝,以後調用b,就會出現”多態”,這是不合理的。 - virtual base class
每個編譯器對於虛擬繼承的支持承諾,都表示必須讓 derived class object 中的virtual
base class subobject位置 在執行期就準備妥當。
copy constructor
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.