以下代碼給出了一個編譯錯誤在(至少使用當MS VS 2008)線 「E = F」 主():錯誤C2582: '運算符=' 的功能是在 'B' 不可用
錯誤C2582: '運算符=' 功能是
class A {
public:
A() { }
static const double x;
};
const double A::x = 0.0;
class B {
public:
B() : x(0.0) { }
const double x;
};
int main(int argc, char *argv[])
{
A c,d;
B e,f;
c = d;
e = f;
return 0;
}
默認賦值運算符應爲兩個類,A和B可以產生 'B' 不可用!?
in 12.8.10:「如果類定義沒有明確聲明 複製賦值運算符,則會隱式聲明一個運算符。」
是的,你回答了你自己的問題。如果你接受你的答案,你會得到一個徽章(但沒有代表)。 – CashCow 2014-09-01 13:24:57