class test
{
private:
class privateStruct
{
public:
int m;
privateStruct(int p){m=p;}
};
};
void ff()
{
test::privateStruct ps(4);
throw ps; //Does not work..
}
void main()
{
try
{
ff();
}
catch(...)
{
}
}
但是,下面的代碼工作爲什麼訪問公共類功能的專用類給錯誤
class test
{
private:
class privateStruct
{
public:
int m;
privateStruct(int p){m=p;}
};
};
void ff()
{
throw test::privateStruct(4); //Work why
}
void main()
{
try
{
ff();
}
catch(...)
{
}
}
注:我使用VC++ 6.0
我需要回答爲什麼上面的代碼工作。
感謝提前:)
使用哪個編譯器做第二個例子「工作?」 Microsoft Visual C++ 2008和Windows版英特爾C++編譯器11都無法編譯它,因爲'privateStruct'無法訪問。 – 2010-01-06 05:30:38
我會補充說gcc4.4也不會編譯其中的任何一個,出於同樣的原因。 – 2010-01-06 05:32:14