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

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

C++Error2208:...嘗試引用已刪除的函數

2019-11-08 01:42:02
字體:
來源:轉載
供稿:網友

C++Error2208:…嘗試引用已刪除的函數

在使用自己編寫的類實例化c++stl容器vector時,調用了vector.erase()方法,結果編譯器報了以下錯誤

錯誤 C2280 “(類名)::Operator =(const (類名) &)”: 嘗試引用已刪除的函數 F:/vs2015/VC/include/xutility 2581

從錯誤的內容看,似乎是自己的類的賦值構造函數被嘗試調用卻發現其已被刪除。

在翻閱了資料后發現,erase方法會在將對象刪除后,將所有該對象之后的對象向前移動。此時會調用該對象的賦值構造函數。

一般而言,對象的賦值構造函數如果開發者沒有提供,則編譯器會生成默認的賦值構造函數。然而,默認的賦值構造函數在以下幾種情況會被刪除。

該類含有非靜態的const成員變量該類含有非靜態的reference成員變量該類含有不能被拷貝的成員變量該類含有不能被拷貝的基類該類含有用戶定義的移動構造函數或者移動賦值函數

自己編寫的類中有const成員變量, 將其改成static 或者去掉const 或者添加賦值構造函數,就可以消除這個error.

參考:

stack overflow相關提問 Effect C++ 第二章


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 普格县| 黄陵县| 五家渠市| 东丽区| 郁南县| 安福县| 裕民县| 客服| 元谋县| 卓资县| 长宁区| 沅江市| 金阳县| 贡山| 汕头市| 柳林县| 滦南县| 房山区| 洪湖市| 托克托县| 满城县| 高碑店市| 新兴县| 保山市| 东安县| 新巴尔虎右旗| 古田县| 上思县| 台东市| 上虞市| 花莲县| 阿拉善右旗| 和政县| 渝中区| 印江| 甘谷县| 郁南县| 大石桥市| 资阳市| 万源市| 龙南县|