[英]Access members of nested class
class A
{
class B
{
int x;
}
public:
void printX() { std::cout << ????; }
}
如何從A類函數訪問x變量? 我也不能使其靜止...
我嘗試了所有操作,但是它要么告訴我我需要一個對象才能訪問它,否則編譯器找不到該函數。
它要么告訴我我需要一個物體[...]
考慮一下。 因為這正是問題所在。
如果實例化一個A
, 那么您也不會得到B
嵌套類不是封閉類的成員變量。 實際上,這只是更改類名稱空間的另一種方法。
因此,您需要一個B
的實例。 也許是A
的成員?
class A
{
class B
{
public:
int x;
} mB;
public:
void printX() { std::cout << mB.x; }
};
您永遠不會在A中聲明類B的實例 。您需要執行以下操作:
class A
{
class B
{
public:
int x;
};
B b;
public:
void printX() { std::cout << b.x; }
};
你不知道 您確實需要一個對象才能使用x變量。 您可以將其設為靜態。 您的示例的問題是x不公開。 將B放在A內並不能使B成為A的一部分,而只是改變B的范圍。
在此示例中,有點像您在繼承繼承。 這將為您帶來想要的效果(無需使用對象即可訪問所有B的方法和變量。)
Class B
{
protected:
int x;
}
Class A : B
{
void printX() { std::cout << x; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.