c++ - 引用尚 undefined object

标签 c++

我有两个需要指向彼此的对象...唯一的问题是,由于它们是按特定顺序声明的,所以一个或另一个不知道另一个对象是否存在。例如:

...
#define foobar_h

class Foo {
  Bar* b;
};

class Bar {
  Foo* f;
};

...

我怎样才能声明这些类,以便它们能够愉快地相互引用?

最佳答案

你做一个预声明:

class Bar;

class Foo {
  Bar* b;
};

class Bar {
  Foo* f;
};

这让编译器知道 Bar 类型是一个类,因此它可以正确地找出如何表示指向它的指针。

当然,这仅在不需要 Bar 类型的值的确切布局和大小时有效,如果您尝试嵌入一个值:

class Foo {
  Bar my_bar;
};

你没能成功,但既然你用了指针,那就没问题了。引用也起作用了,因为引用不会嵌入整个对象。

关于c++ - 引用尚 undefined object ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9419935/

相关文章:

c++ - Firefox 扩展和 nsIMutationObserver

c++ - 手动编译所有 -O3 标志与直接指定 "-O3"有不同的结果

c++ - 如何轻松查看 C/C++ #include 图?

c++ - template<T> 类中 T 的 vector 的 vector

c++ - std::vector<int> 声明的总线错误/段错误

c++ - 如何在win32 windows中创建一个嵌入式文本输入框

C# 等效于 C++ ostream::tellp 用于磁盘上的大小限制

c++ - 错误: expected unqualified-id before ‘class’

c++ - 你如何动态扩展数组和更新?

C++0x 线程