C++如何在已在Outer类中声明的内部类中使用变量

Sab*_*ros 0 c++

是否可以在Outer类中声明的内部类中使用变量.我想实现如下.可能吗.我收到以下错误.

prog.cc:在构造函数'Outer :: Inner :: Inner()'中:prog.cc:12:25:错误:无效使用非静态数据成员'Outer :: i'Inner(){i = 5; };

    #include <iostream>
using namespace std;
class Outer {
public:
    int i;
    class Inner; // forward declaration of Outer::Inner
    friend class Inner;
    class Inner {
        Inner() {
            i = 5;
        };
    };
};
int main() {
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Bot*_*tje 6

与Java不同,C++"内部类"与创建它们的外部类没有任何关系.您必须传入指向外部类的指针或引用.

  • 不要那么快就用你不理解的语言称之为瑕疵. (7认同)