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