这是因为类的定义和声明是分开的。类的定义通常在头文件中,而类的声明在cpp文件中。当多个cpp文件包含同一个头文件时,会发生重复定义的情况,但由于类的定义只会在一个文件中出现,所以不会报错。
示例代码:
// MyClass.h #ifndef MY_CLASS_H #define MY_CLASS_H
class MyClass { public: void doSomething(); };
#endif // MY_CLASS_H
// File1.cpp #include "MyClass.h" void MyClass::doSomething() { // some code }
// File2.cpp #include "MyClass.h" void MyClass::doSomething() { // some other code }
// main.cpp #include "MyClass.h" int main() { MyClass obj; obj.doSomething(); return 0; }
在这个例子中,MyClass类的定义放在了MyClass.h头文件中。File1.cpp和File2.cpp都包含了MyClass.h头文件,并对MyClass类的doSomething()函数进行了定义,但由于类的定义只存在于一个头文件中,所以不会报错。在main.cpp中,我们可以创建MyClass类的对象并调用其doSomething()函数。
上一篇:不同的COUNT(1)方法
下一篇:不同的CSS边框属性值表现不同