C++ (C+;+;)当我被教导分离声明和实现时,为什么我看到一些程序员在类中这样做?

C++ (C+;+;)当我被教导分离声明和实现时,为什么我看到一些程序员在类中这样做?,c++,class,layout,conventions,declare,C++,Class,Layout,Conventions,Declare,我看到了这段代码,它可以编译。这并不奇怪,但为什么会这样组织呢?为什么没有类.cpp? (编辑:我不是指空格,我是指位置。) ///main.cpp/// #包括 #包括“h类” int main(){ peta(4); 双x; std::cout>x; petb(x); petc(b); std::cout出于性能原因,让声明为小方法使用内联定义没有什么错。另一方面,如果class.h包含在多个.cpp文件中,则Pet::total变量将是一个问题。每个.cpp都将获得自己的变量副本如果你懒惰

我看到了这段代码,它可以编译。这并不奇怪,但为什么会这样组织呢?为什么没有
类.cpp
? (编辑:我不是指空格,我是指位置。)

///main.cpp///
#包括
#包括“h类”
int main(){
peta(4);
双x;
std::cout>x;
petb(x);
petc(b);

std::cout出于性能原因,让声明为小方法使用内联定义没有什么错。另一方面,如果
class.h
包含在多个
.cpp
文件中,则
Pet::total
变量将是一个问题。每个
.cpp
都将获得自己的变量副本如果你懒惰和/或它只是一个微不足道的定义,这很好。@RemyLebeau在将它包含到多个
.cpp
文件中时,我如何避免这种情况?讨厌的代码。没有
常量
正确性。
getTotal
应该是
静态的
。编译器生成的赋值运算符不充分。等等。@PatrickO'Brien:Write
int-Pet::total=0;
在单个cpp文件中。