爲什麼只能創建一個內聯類作爲封閉類的成員? 它是如何在內存aranged爲什麼它會防止這種情況,例如:C++,內部類和爲什麼只能創建成員作爲指針
class temp
{
public:
class inner
{
public:
inner(int a = 0) : memberInt(a) {}
const int memberInt;
};
temp(int i = 0) : member(i)
{
}
inner *i; // this works
inner i; // this doesn't
int member;
};
在此先感謝:-)。
你的前提是'內我;'是無效的不正確。 'inner * i;'和'inner i;'都是'temp'中成員變量的有效聲明。什麼編譯器拒絕'內心我''? [在一個不相關的說明中,最好在C++中將其稱爲_nested class_,以避免與Java中的_inner classes_混淆,這是完全不同的。] – 2011-04-24 01:04:00
我確信這是完全合法的,使用它很多倍。我明白爲什麼它不合法的唯一原因是,如果你在內部類之前聲明瞭成員 - 你仍然可以使用前向聲明來製作指針。 – Damon 2011-04-24 01:09:33
我在這裏看到的唯一「非法」事情是他在臨時班級中有兩個名爲「我」的標識符。 – 2011-04-24 01:12:09