嵌套类可以有一个指向外部类的成员指针吗?

时间:2015-11-11 16:18:02

标签: c++

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

//1
console.log(findById(tabs,'tabB').active)
//2 (individual tag)
var obj = findById(tabs,'tabB')
obj.active = !obj.active
//2 (all tags)
for(var i = 0;i < tabs.length;i++){
    tabs[i].active = !tabs[i].active
}   

如果没问题,是否有任何/棘手的问题应该小心谨慎?

2 个答案:

答案 0 :(得分:2)

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

上的参考资料

这就是为什么你可以指向与数据成员相同的类的原因:

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

答案 1 :(得分:1)

没关系,没问题。 我能想到的一件事可能让你感到惊讶的是,在C ++中,内部类没有对外部类的实例的隐式引用。但是,我不会想到,因为你正在使用指针,这将是一个问题。