Я пишу строковый класс самостоятельно. И у меня есть такой код. Я просто хочу перегрузить operator=. Это мой фактический код, и я получаю ошибку в последней части кода.
#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;
class S {
public:
S();
~S() { delete []string;}
S &operator =(const S &s);
private:
char *string;
int l;
};
S::S()
{
l = 0;
string = new char[1];
string[0]='\0';
}
S &operator=(const S &s)
{
if (this != &s)
{
delete []string;
string = new char[s.l+1];
memcpy(string,s.string,s.l+1);
return *this;
}
return *this;
}
Но, к сожалению, я получаю сообщение об ошибке "S& operator=(const S&)" должна быть нестатической функцией-членом.
memcpy: а> - person chris   schedule 12.10.2012;в конце объявления класса. Опубликуйте минимальный код, который воспроизводит проблему. - person juanchopanza   schedule 12.10.2012