我有一個課與身體的測試方法;爲什麼在C++的類中定義方法時不存在多重定義錯誤?
class Object {
public:
Object(){
}
virtual ~Object(){
}
void test(){
}
};
我把這個object.h
包含在2個cpp文件中。爲什麼在這兩個cpp文件中可用(包含後)的功能Object::test
沒有多重定義錯誤?
我明白,一個具有完整主體的函數是一個定義而不是聲明,所以我期望應該有多個定義錯誤。
是否有官方文章談過?
這是因爲test()是[inline](http://en.wikipedia.org/wiki/Inline_function)。 – 2014-09-26 07:46:34
類內函數定義是隱式「內聯」的。 「內聯」意味着「只要所有定義相同,就可以有多個定義」。 – Mankarse 2014-09-26 07:46:43
無法向Andy的陳述添加其他內容。 – 2014-09-26 07:54:00