【问题标题】:Declaring class pointer variable outside class在类外声明类指针变量
【发布时间】:2018-02-27 15:37:05
【问题描述】:

假设我们在 header 文件中有以下结构:

struct x {
    struct y {
        int a;
        y* b;
        y(int _a, y* _b) {
            a = _a;
            b = _b;
        }
    };   
    void z() {
        y* c = NULL;
    }
};

我们还有 main 文件,看起来像这样:

void f() {
    //place for new pointer from question below
}

int main() {
    ...
}

是否有可能在 f 中声明新的 y 类型指针,该指针适用于 f 相同的 c 指针对z有效(指针可以作用于y类型,不能在函数外使用)?

【问题讨论】:

    标签: c++ class oop scope


    【解决方案1】:

    y 类型嵌套在 x 中,因此要从外部访问它,您必须在其前面加上 x 和范围解析运算符 ::

    void f() {
       x::y* c = nullptr;
    }
    

    应该可以。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多