【发布时间】:2019-02-11 03:18:03
【问题描述】:
假设我有一个这样的头文件:
ABC.h
class A {
int d = 5;
int e = 6;
};
然后我将 ABC.h 包含到两个源 CPP 文件中。那么当链接器将编译单元链接在一起时,我最终会得到 2 个 A 类的定义吗?但是为什么当我测试这个实验时链接器没有抱怨呢?我很困惑。
我正在使用 Visual Studio 2017 进行编译。
【问题讨论】:
-
一个类的多个定义(以不同的单位)是允许的,只要它们完全相同。类没有链接,内联成员函数可以工作,因为它们是内联的
-
尝试在不同的地方定义方法两次,看看会发生什么。
标签: c++ header-files redefinition