C++头文件一般只放类成员声明,而不将类成员函数的初始化放在头文件中,原因在于,若将成员函数初始化放置于头文件中,当其他源文件也引用这个文件时,便会引发重复定义这一冲突。
例如:
class stringBad{
private:
public:
int length(char* s);
}
int stringBad::length(char*s){
return strlen(s);
}
若有多个源文件同时引用该头文件,就会报错。原因在于每个引用该头文件的源文件都会定义一次length(char*)函数