从派生类内部的类中的方法访问基类成员
Access base class member from a method in a class inside derived class
情况如下:
class Base
{
object* mainObject;
}
class Derived :
public Base
{
class aTrain
{
void* something;
.
.
.
~aTrain()
{
mainObject->destroyingMethod(something);
}
};
}
非静态成员引用必须相对于特定对象。我可以理解这个问题,但我怎么能解决这个问题,而不传递派生类到一个构造函数?
在Derived
中定义aTrain
会影响类型 aTrain
的作用域和访问权限。
这并不意味着每个aTrain
都有一个相关的Derived
。可以有任意数量的aTrain
实例,也可以有任意数量的Derived
实例。
所以如果你想让每个aTrain
知道一些Derived
的实例,你必须实现它,用指针或引用成员
如果不将某种对mainobject
的引用传递给aTrain
,则无法解决此问题。您是通过将对Derived
对象的引用传递给aTrain
构造函数,还是通过aTrain
的成员函数或任何其他可能的组合将对mainobject
的引用传递给aTrain
来实现这一点,这取决于您。
问题是内部类没有隐式的方式来访问包含它的类的非静态成员。
相关文章:
- 为什么此派生对象无法访问基类的后递减方法?
- 无法访问基类函数 C++
- 相同的层次结构,访问基类的受保护成员时的行为不同
- 如何访问基类向量中的子类变量?(对于实体组件系统)
- 如何从派生类访问基类中的重载运算符?
- 派生类无法访问基类的受保护成员
- 我不能访问基类的函数
- 无法在赋值运算符中访问基类的受保护方法
- 访问基类中直接受保护的字段
- 使用单一实例类作为派生类时,如何访问基类中的函数
- 为什么无法访问基类的函数重载
- 访问基类的受保护成员
- 访问基类C 中的变量
- 尝试访问基类的受保护数据成员时出现编译错误
- 允许从特定派生类访问基类成员
- 如何通过派生类访问基类的受保护成员?
- 在派生的C 类中,访问基类受保护成员作为公共的访问声明
- C++派生类访问基类成员
- 虚函数可以访问基类的友元吗?
- 使用派生模板化类的正确类型转换访问基类中的数据