gpt4 book ai didi

c++ - 警告 C4099 : type name first seen using 'class' now seen using 'struct' (MS VS 2k8)

转载 作者:IT老高 更新时间:2023-10-28 22:23:51 54 4
gpt4 key购买 nike

这个警告有什么可担心的吗?我读过它会导致不稳定的行为?

这是我正在尝试编译的示例,有人可以向我解释为什么作者将对象声明为类,然后 typedef 将其转换为结构吗?如果类(class)是POD,这样做是完全正常的吗? ?

谢谢。

最佳答案

当您有一个与另一个相矛盾的类型声明(一个说“类”,另一个说“结构”)时,会出现此警告。给定一个定义规则,除了至多一个之外的所有声明都必须是前向声明。警告通常表明一个类型的前向声明是错误的,通常是一个简单的错字,应该修复。在这种情况下应该没有副作用,但你真的应该修复它。

但是,如果您有类型名称冲突(可能是由于使用“使用命名空间”子句或全局命名空间污染引起的),可能会发生一些非常糟糕的事情。这些警告可能表明您正在混合来自两个不同库的 header 并且类型名称有冲突。在这些条件下编译的代码可能会做一些非常意想不到的事情。

我的建议 - 了解警告出现的原因并修复它。如果警告出现在第三方产品中,请坚持让他们修复它。

关于c++ - 警告 C4099 : type name first seen using 'class' now seen using 'struct' (MS VS 2k8),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/468486/

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