我想知道这样的事情是可能的。也许使用模板和诡计? 现在我要强制执行的唯一规则是您不允许在类 bar 中使用构造函数(因此您不能传入指向 foo 或 a 的引用或指针)。
class Foo{
int a;
public:
struct Bar{
int barme(){ return a; }
};
};
我知道一个问题是 bar 如何知道要使用哪个 foo 实例?我不知道,但我想要一个 foo 有很多类的 Bar 和更多的 foo,每个 foo 会有一个以上的 bar。
我确定我在某个地方看到了一个把戏(也许是用不同的语言),但我不知道在哪里。我确实记得一个使用编译时 const 的模板,但在这种情况下 foo 不会是编译时,尽管它的 ptr/ref 可能是
最佳答案
在 C++ 中,嵌套类就是类。它不像 Java,其中嵌套类带有父类的实例。因此,这样的事情是不可能的。您必须传递 Foo
的实例才能在 Bar
内部进行操作。 (例如 std::vector::iterator
不带有 std::vector
-- 它是一个完全独立的类型)
关于c++ - 捕获子类内部的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6351213/