[英]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.