C++:从嵌套类(在派生类中)访问基类成员



我目前有以下问题(简单问题(。我想从嵌套类访问基类的公共成员。显然它不那么容易工作。。。这里的正确解决方案是什么?

我必须将*this传递给派生类中的嵌套类吗?

谢谢你给我思考的食物!

#include <iostream>
class base
{
public:
virtual void update() = 0;
void drawCircle(const int& num) const { std::cout << "Base Clase: Circle " << num << " completed..." << std::endl; };
private:
};
class derived : public base
{
public:
class nestedClass
{
public:
void drawSomeCircle() const {
drawCircle(1);  // does not work!
drawCircle(2);  // does not work!
drawCircle(3);  // does not work!
}
private:
};
void update() override
{
// make some graphic stuff
myInnerNestedClass.drawSomeCircle();
// access base class member drawCircle from here --> is working
drawCircle(4);
}
nestedClass myInnerNestedClass;
private:
};
int main()
{
derived oneDerivedClass;
oneDerivedClass.update();
return 0;
}

是否必须将*this传递给派生类中的嵌套类?

nestedClass不知道drawCircle(const int&)属于谁,除非它在全局或外部namespace范围内。

一旦将derived*this对象传递给nestedClass,它甚至可以访问其private成员。

最新更新