【发布时间】:2017-01-26 06:01:29
【问题描述】:
尝试编译一些代码,但我不断收到一条错误消息 " 'myString& operator=(const myString&)' 必须是非静态成员函数"
这是我的 namelist.cpp
myString& operator=(const myString& string)
{
if(this = &string)
return *this;
data = new char[strlen(string.data)+1];
strcpy(data, string.data);
length = string.length;
return *this;
}
这是我的一些名单.h
9 class myString
10 {
11 private:
12 char* data;
13 int length;
14
15 public:
16 myString();
17 myString(char cString[]);
18 myString(myString& cString);
19 //desctructor
20 myString operator=(const myString& string);
21 myString operator+(const myString& string);
【问题讨论】:
-
标头中的声明不匹配。错过'&'
-
小心那个名为
string的变量。一个错字和一个using namespace std和错误消息可能会从易于阅读变成噩梦般的神秘。
标签: c++ class object operator-overloading