MyString{
public:
char *str=NULL;
MyString(char *a){
str = new char[strlen(a) + 1];
strcpy(str, a);
}
MyString(MyString & a){
str = new char[strlen(a.str) + 1];
strcpy(str, a.str);
}
MyString & operator=(char* a){
if (str) delete[] str;
str = new char[strlen(a) + 1];
strcpy(str, a);
return *this;
}};
int main(){
MyString array[4]={"hello","the","world","bye"};
}
在編譯的程序中報錯“no matching function for call to 'MyString::MyString(MyString)' ”
我想知道是哪里出了問題?
還是說要重新多載函式?
uj5u.com熱心網友回復:
什么編譯啊????在我這里沒問題啊?
uj5u.com熱心網友回復:
編譯器是dev-c++,這段程式是某一個程式的一個部分,把整個程式編譯的時候會在此行標紅提示錯誤,不過單獨編譯卻沒有問題
uj5u.com熱心網友回復:
日經問題,拷貝構造引數加const
MyString(const MyString & a){
}
uj5u.com熱心網友回復:
拷貝構造寫錯了uj5u.com熱心網友回復:
謝謝,問題解決了!但是我想請問一下為什么一定要加const呢?(還是說這是dev的要求)uj5u.com熱心網友回復:
你還是去查一下const的用法,尤其是const參考的作用轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/78834.html
標籤:C++ 語言
