c++对象拷贝语意学
對象拷貝語意學(xué)
- 對象拷貝語意學(xué)
- copy assignment operator
- 虛繼承中的拷貝賦值
對象拷貝語意學(xué)
一個class對于默認(rèn)的copy assignment operator,在以下情況,不會表現(xiàn)出bitwise copy語意:
1.當(dāng)class內(nèi)含有一個member object,而其class有一個copy assignment operator時
2.當(dāng)一個class的base class有一個copy assignment operator時
3.當(dāng)一個class聲明了任何virtual functions時(一定不要拷貝右端class object的vptr地址,因為它可能是一個derived class object)
4.當(dāng)class繼承自一個virtual base class時(無論此base class有沒有copy operator)時
C++標(biāo)準(zhǔn)上說,copy assignment operator在不表現(xiàn)出bitwise copy semantics時,是nontrivial的,只有nontrivial的實例才會被合成出來
以上面的2.為例子看看編譯器合成的copy assignment operator是什么樣子,在為Point類顯式定義一個copy assignment operator,然后Point3d繼承類Point,但是不顯式定義copy assignment operator:
總結(jié)
以上是生活随笔為你收集整理的c++对象拷贝语意学的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u盘fat怎么转换为ntfs u盘fat
- 下一篇: C++析构语意学