我有如下代码:
class outer {
public:
class inner {
outer & o;
public:
inner(outer & o): o(o) {}
};
inner i(*this);
};
但这给了我错误的说法:
error: expect specifier before token '*'
我该怎么做?我必须使用指针吗?
最佳答案
1) 在outer
的构造函数的初始化列表中初始化i
。
inner i;
outer(): i(*this) {}
2)(仅限 C++11)为 i
使用大括号初始化器。在这种情况下,您必须使用大括号,而不是圆括号。
inner i{*this};
关于c++ - 如何声明包含对外部类的引用的成员变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22106371/