gpt4 book ai didi

c++ - 为什么下面的代码在 VS2010 中出现 "ambigous symbol"错误?

转载 作者:搜寻专家 更新时间:2023-10-31 00:17:08 24 4
gpt4 key购买 nike

此代码在 VS2010 中编译,我相信它适用于任何编译器。

#include <iosfwd>
using namespace std;
class ostream;
int main() {}

这段代码也是如此

#include <iosfwd>
using namespace std;
int main() { class ostream; }

但此代码会生成错误 C2872:“ostream”:不明确的符号

#include <iosfwd>
using namespace std;
class ostream;
int main() { class ostream; }

最佳答案

范围内有两个名为ostream 的类:::std::ostream::ostream。如果你想转发声明,你必须在正确的命名空间中进行:

#include <iosfwd>
using namespace std;
namespace std {
class ostream;
}
int main() { class ostream; }

无论如何,这在这种情况下不起作用,因为 ostreambasic_ostream 的 typedef,而不是一个单独的类。只需包含 iosfwd header ,因为它会为您转发声明所有内容。

关于c++ - 为什么下面的代码在 VS2010 中出现 "ambigous symbol"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14146920/

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