c++对象拷贝语意学
對(duì)象拷貝語(yǔ)意學(xué)
- 對(duì)象拷貝語(yǔ)意學(xué)
- copy assignment operator
- 虛繼承中的拷貝賦值
對(duì)象拷貝語(yǔ)意學(xué)
一個(gè)class對(duì)于默認(rèn)的copy assignment operator,在以下情況,不會(huì)表現(xiàn)出bitwise copy語(yǔ)意:
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í)(無(wú)論此base class有沒(méi)有copy operator)時(shí)
C++標(biāo)準(zhǔn)上說(shuō),copy assignment operator在不表現(xiàn)出bitwise copy semantics時(shí),是nontrivial的,只有nontrivial的實(shí)例才會(huì)被合成出來(lái)
以上面的2.為例子看看編譯器合成的copy assignment operator是什么樣子,在為Point類(lèi)顯式定義一個(gè)copy assignment operator,然后Point3d繼承類(lèi)Point,但是不顯式定義copy assignment operator:
總結(jié)
以上是生活随笔為你收集整理的c++对象拷贝语意学的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: u盘fat怎么转换为ntfs u盘fat
- 下一篇: C++析构语意学