gpt4 book ai didi

C++ 编译器告诉我无法识别类型

转载 作者:行者123 更新时间:2023-11-27 23:31:39 25 4
gpt4 key购买 nike

使用 Visual C++ 2010 我有如下代码:

文件A.hpp:

...
#include "R.hpp"
...
class A; // forward declaration because the APtr_t is used inside the A class too.
typedef boost::shared_ptr<A> APtr_t;
...
class A {
...
void some_method () {
...
R::get()->mehod(); // singleton ;)
...
}
...
};

文件 R.hpp:

...
#include "A.hpp"
...

class R {
...
APtr_t method();
...
};

Visual C++ 编辑器说它很好(没有错误标记)但是在编译项目时,它表现为未定义 APtr_t。它显示如下错误:

error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

问题是这个问题只发生在 R.hpp 文件中,我认为...

你有什么想法吗?这很令人困惑:-/

提前致谢。

最佳答案

我的心理调试技巧猜测 A.hpp 包含 R.hpp 并且您的 header 具有适当的包含保护。在这种情况下,包含链看起来像 blah.cpp -> A.hpp -> R.hpp -> A。 hpp(包含保护防止包含)。所以它根本没有看到 A.hppR.hpp 的内容。您需要使用其中一种标准方法来移除循环依赖。

关于C++ 编译器告诉我无法识别类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4868561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com