访问嵌套类的成员
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; }
}
相关文章:
- 嵌套在类中时无法设置成员数据
- 如何在 C++ 的外部类构造函数中初始化嵌套类成员
- 迭代嵌套映射与范围为循环:没有名为"first"的成员
- 如何从另一个嵌套类中调用某个封闭类的嵌套类的函数指针成员的值?
- MSVC 2017 - 错误 - 如何将模板类 X 的模板成员函数声明为嵌套类 X::Y 的好友
- std::void_t 和嵌套的非类型成员
- C2436 '{ctor}':构造函数初始值设定项列表中的成员函数或嵌套类
- c++ 嵌套结构映射找不到成员
- 无法从多态嵌套类访问包含类的成员
- 其他类的成员函数对成员函数的嵌套引用
- 如何从嵌套在命名空间中的类调用成员函数?
- 返回自身内部的双重嵌套类的成员函数,该类继承自从自身继承的类
- 嵌套的类成员变量不可访问.链表设置.V、下一个和新的问题
- 当使用嵌套类功能时,使用非静态数据成员的使用无效,但是当函数未固定时可以
- 包含指针成员的嵌套结构
- 缩短成员函数作用域说明符(嵌套类)(C++)
- 为什么嵌套类的成员函数不需要完整类型?
- 访问嵌套结构的数据成员并将结构传递到功能C
- 静态模板成员的嵌套静态模板成员
- 如何在 C++ 中将结构类型向量数据输入到结构向量成员(嵌套结构向量)中