转发声明嵌套类
在 C 中,不可能在其容器之外转发声明嵌套类。编译器需要在其包含范围内对嵌套类进行完整定义。
假设您有一个包含嵌套类的类:
class Container { public: class Iterator { // ... }; // ... };
尝试在另一个中转发声明 Container::Iterator头文件会导致编译错误:
class Container::Iterator; class Foo { void Read(Container::Iterator& it); };
原因限制
编译器需要知道类的完整结构,包括嵌套类,然后才能生成代码。在其容器外部转发声明嵌套类会破坏此依赖性。
解决方法选项
要规避此限制,您有多种选择:
通过遵循这些准则,您可以确保在转发声明嵌套类时代码成功编译。
以上是为什么我不能在其容器之外转发声明嵌套 C 类?的详细内容。更多信息请关注PHP中文网其他相关文章!