首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

Vector erase 錯誤訊息解决思路

2012-03-09 
Vector erase 錯誤訊息實做把struct 塞進去 vector的時候,發現一個小問題。檢視純文字版列印?class TCP{pri

Vector erase 錯誤訊息
實做把struct 塞進去 vector的時候,發現一個小問題。

檢視純文字版列印?
class TCP  
{  
private:  
  AnsiString cv_Name;  
  vector <TCP> cv_tmp;  
  void __fastcall test(const unsigned int Index, const TCP& Item);  
  
public:  
  AnsiString atmp;  
  //__property AnsiString Name = {read=cv_Name,write=cv_Name}; //註解取消編譯會有異常產生,原因不明  
};  
  
void __fastcall TCP::test(const unsigned int Index, const TCP& Item)  
{  
  cv_tmp.erase(&cv_tmp[Index]);  
}  


上面是我的code,當__property AnsiString Name 存在的時候,

cv_tmp.erase(&cv_tmp[Index]);

這一行就會出現 E2328 Classes with properties cannot be copied by value的錯誤訊息。

並不知道為啥米而產生,不知道各位大大在撰寫程式的時候有無發生類似的情況?



[解决办法]
cv_tmp.erase(&cv_tmp[Index]);
错误,参数是迭代器。你给的参数是地址。
cv_tmp.erase( cv_tmp.begin() + Index );

热点排行