当然,我们甚至不应该考虑做这样的事情,我知道,但这仍然很有趣:

class A; //declaration
struct A {...}; //definition

struct B; //declaration
class B {...}; //definition

当我想到它时,如果真的允许这样的事情,我看不出有任何问题(因为 struct 和 class 本质上是同一件事)。但它是(标准的)吗?

MSVC 接受并编译它,并带有警告。

最佳答案

根据标准,这是允许的,但正如一些编译器警告的那样,它不是很有用。

我相信警告是/是由 MSVC 对结构和类使用不同的名称修改引起的,这将使它变得更没用......

应@Armen 的要求:

7.1.5.3 详细的类型说明符,p3

关于c++ - 使用 struct 关键字声明一个类,反之亦然,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6485419/

10-11 23:05
查看更多