国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

解析c++中的默認(rèn)operator=操作的詳解

2020-01-26 16:15:17
字體:
供稿:網(wǎng)友

在c++中,如果沒有定義operator=操作,編譯器會(huì)提供一個(gè)默認(rèn)的operator=操作。由于operator=操作和拷貝構(gòu)造函數(shù)的功能類似,都執(zhí)行拷貝操作。因此,編譯器也分提供無用的默認(rèn)operator=操作和非無用的默認(rèn)operator=操作。并且什么時(shí)候提供非無用的默認(rèn)operator=操作和無用的等操作的情形也和拷貝構(gòu)造函數(shù)類似。(詳細(xì)分析過程請參考《基于c++中的默認(rèn)拷貝函數(shù)的使用詳解》)

對于一個(gè)類,編譯器會(huì)提供非無用的operator=操作的情形:

1 該類是含有虛成員函數(shù)(繼承自虛基類,或者繼承的基類含有虛成員函數(shù)也屬于這種情況)

2 該類繼承的基類自定義了operator=操作(如果基類沒有自定義operator=操作,但是編譯器會(huì)為基類提供非無用的默認(rèn)operator=操作,也屬于這種情況。這就是說,只要基類有一個(gè)非無用的operator=操作就行,不管這個(gè)非無用operator=操作是自定義的,還是編譯器提供的都行)

3 該類含有成員對象,該成員對象自定義了operator=操作(如果成員對象沒有自定義operator=操作,但是編譯器會(huì)為成員對象變量提供非無用的默認(rèn)operator=操作,也屬于這種情況。這就是說,只要成員對象變量有一個(gè)非無用的operator=操作,不管這個(gè)非無用的operator=操作是自定義的,還是編譯器提供的,都行)


并且,如果類自定義了operator=操作,編譯器只是負(fù)責(zé)調(diào)用,不會(huì)額外提供任何拷貝過程;對于編譯器提供的默認(rèn)operator=操作,不管是無用的還是非無用的,都只執(zhí)行淺拷貝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 襄垣县| 疏附县| 始兴县| 怀安县| 三门县| 濮阳市| 连云港市| 呼和浩特市| 桓仁| 新绛县| 邯郸县| 平塘县| 前郭尔| 惠来县| 苍溪县| 肇州县| 斗六市| 重庆市| 鹤壁市| 三台县| 万盛区| 肥乡县| 句容市| 阳西县| 奎屯市| 宁国市| 府谷县| 和静县| 宜川县| 大港区| 尚义县| 嫩江县| 阿巴嘎旗| 南陵县| 大连市| 肃宁县| 新安县| 曲水县| 阿拉善右旗| 宾川县| 台安县|