3
有人可以幫助我理解這個錯誤,當我在函數中聲明結構本地時,我從編譯器得到錯誤。但是當我在函數之外聲明結構時,錯誤消失了。爲什麼在函數中本地定義的結構需要賦值運算符和拷貝構造函數
注意:我沒有有意實現缺失功能。我只是想知道爲什麼編譯器需要他們,當我不使用我的代碼。
RAII :: RAII「:本地類的成員函數沒有一個身體
RAII ::運算符=」:本地類的成員函數沒有一個身體
void someclass::somefun()
{
static bool inProgress = false;
struct RAII
{
RAII(bool& f):flag(f){ flag = true;}
~RAII() { flag = false; }
bool& flag;
private:
RAII(const RAII& rhs);
RAII& operator= (const RAII& rhs);
};
RAII autoreset(inProgress);
// Do something
}
由於'本地類成員函數沒有主體',因此。換句話說,顯然**是地方班級的特殊規則。 – Griwes
@Griwes感謝您的反對票,但我真的很想知道誰在使用複製構造函數和賦值運算符。我沒有看到我的代碼。 – Satbir
這是警告,而不是錯誤 – billz