繁体   English   中英

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

[英]Multiple definition of a variable in C++ classes

假设这两个 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 开始,在 class 内部初始化一个成员变量。 我的问题是它如何编译一个 linker 错误? 它是未定义的行为吗? 因为我们打破了单一定义规则。 如果不使用类,这将在编译时生成链接错误。

我知道在 class 中定义 function 使其内联,因此可以将它们中的多个放在不同的文件中,但不确定如何使用多个变量?

是的,这违反了One Definition Rule并且是Undefined Behavior

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM