因为Qt采取的 moc 机制,对于某个继承自 QObject 并且添加了 Q_OBJECT 宏的对象都要单独编译一个obj。如果不分开,会导致编译通不过。 类的声明和实现也要分开,因为调用它们的源文件需要使用include语句包含它们,如果类的定义和实现没有分开的话,还是等于类的实现没有和调用它们的源文件分开。