c++ - 捕获子类内部的变量?

标签 c++ class templates inheritance

我想知道这样的事情是可能的。也许使用模板和诡计? 现在我要强制执行的唯一规则是您不允许在类 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/

相关文章:

c++ - 跨内核和用户空间的 Linux 时序

java - 如何允许用户访问类的方法

python - 模板与编码的 HTML

c++ - 如何在编译时检测类型是否为 shared_ptr

c++ - 在 Inno-Setup 中使用自定义 DLL

使用 id 和类的 CSS 样式链接

c++ - std 类型别名的自定义点

jquery - 如何在一个文件中存储多个html模板?

c++ - "Rock, paper, scissors"C++ 代码有问题

C++ header 和声明嵌套结构和类语法