可能重複:
What does 「operator = must be a non-static member」 mean? (C++)C++全局重載運算符=
嗨,
我有以下代碼...
// Header file
struct dataRecord{
size_t id;
char name[gcNameLength];
};
void operator=(dataRecord &adr, const dataRecord &bdr);
如何過的gcc給我跟隨編譯時發生錯誤。
error: ‘void operator=(dataRecord&, const dataRecord&)’ must be a nonstatic member function
感謝您的幫助。
「必須是一個非靜態成員函數「 - 這裏有什麼不清楚? – 2011-02-18 02:49:41
錯誤消息在這種情況下非常精確地告訴問題:如果您要重載`operator =`,則不能將其作爲全局函數來執行 - 您必須使用非靜態成員函數(通常使用全局的理由是允許在左操作數上進行轉換,但在分配情況下不適用)。 – 2011-02-18 02:50:23
所以它必須是結構的一部分,不能是全局的。 – Thomas 2011-02-18 02:50:29