在Abc.hpp文件中的下列信息被定義:如何寫賦值=操作
class Abc: public A
{
enum Ac { VAR };
struct L{
std::string s1;
::Class2::ID type;
unsigned s;
bool operator==(const L& l) const { return (type==l.type)&&(s==l.s)&&(s==l.s); }
};
class SS
{
public:
virtual ~SS();
};
class IS {
public:
/// Destructor
virtual ~IS();
};
class HashIndexImplementation;
class HashIndex;
void func(){}
Abc& operator=(Abc&) {
cout << "A::operator=(A&)" << endl;
return *this;
} //It gives me the error that the token '{' is not recognized
Abc(Class2 & part);
};
對於上述類目的在與另一類我的目的分配的以下信息:
Abc d;
static Abc f;
f=d;
但是,我上面寫的代碼不起作用...它引發的錯誤是:
no matching function for call to Abc::Abc()
編輯:我正在處理整個類的層次結構,因此如果我添加像Abc()這樣的另一個構造函數,那麼我將被迫在多達20個類中進行更改......是否沒有其他方法可用於分配。 是否有一些方法可以將其他構造函數合併到一起。
好閱讀:http://stackoverflow.com/questions/3279543/what-is-the-copy-and-swap-idiom –
您的abc類聲明最後缺少';'。 – juanchopanza
這是功課嗎?如果是的話,那很好,我們只是在回答之前知道。 –