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