c++ - 嵌套类可以有指向外部类的成员指针吗?

标签 c++

在 C++ 中,给定一个嵌套类,内部类是否可以有指向外部类的成员指针?

class Outer{
public:
    class Inner{
    public:
        int i;
        Outer *ptr;

        Inner(){
            i =0;
            ptr = NULL;
            ....
        }
        ...

    };
}

如果可以,有没有什么/棘手的问题需要小心谨慎?

最佳答案

您可以声明指向外部类的指针或引用,因为它不需要完整的类型。声明一个对象将要求类型是完整的。请参阅 incomplete types 上的引用资料

这与您可以将指针指向同一个类作为数据成员的原因相同:

class Outer
{
  Outer* p; // Outer is an incomplete type at this point
};

关于c++ - 嵌套类可以有指向外部类的成员指针吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33654933/

相关文章:

c++ - 如何以编程方式在 C/C++ 中导致核心转储

c++ - 在 C++ 中计算一次后跨多个线程共享只读数据

c++ - 为什么我会收到这么多错误,为什么它告诉我窗口未定义?不会编译

c++ - 如何在 C++ 中使用键盘输入终止监听的 TCP 服务器

c++ - 调用 Process32First() 时如何修复 "The program issued a command but the command length is incorrect."错误?

c++ - “INPUT”未在此范围内声明

c++ - 确定函数的声明、定义和调用

c++ - 我怎样才能从模板派生两次,并让子类交互?

c++ - 为什么我尝试输出一个 UTF-8 字符时得到三个不同的数字?

c++ - Microsoft Windows SChannel SSPI 自检?