C++类中变量的多重定义

假设这两个 cpp 文件:

0.cc

#include <iostream>

class test{
 public:
 int num = 5;
};

int main(){
 test t;
 return t.num;
}

1.cc

class test{
 public:
 int num = 6; // <-- note this has a different value.
};

我们用g++ 0.cc 1.cc.

从 C++11 开始,在类中初始化成员变量是有效的。我的问题是它如何编译 whiteout 链接器错误?这是未定义的行为吗?因为我们正在打破一个定义规则。如果没有使用类,这将在编译时产生链接错误。

我知道在一个类中定义一个函数会使其内联,因此可以在不同的文件中包含多个函数,但不确定多个变量如何?

回答

是的,它违反了一个定义规则,它是未定义的行为。


以上是C++类中变量的多重定义的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>