即使定义只有一行,如下面的代码中的构造函数或int value() const;
,总是将声明和定义分开是一个好习惯吗?
我的目标是学习C ++,同时融入最佳实践。因此,如果在此代码中有一些需要改进的地方,请告诉我。
//counter.h
#ifndef COUNTER_H
#define COUNTER_H
#include <QObject>
class Counter : public QObject
{
Q_OBJECT
public:
Counter();
int value() const;
public slots:
void setValue(int value);
signals:
void valueChange(int newValue);
private:
int m_value;
};
#endif // COUNTER_H
-
//counter.cpp
#include "counter.h"
Counter::Counter()
{
m_value = 0;
}
int Counter::value() const
{
return m_value;
}
void Counter::setValue(int value)
{
if(value != m_value)
{
m_value = value;
emit valueChange(value);
}
}
答案 0 :(得分:1)
在类定义中实现的所有函数都是内联的。因此,如果您将这些方法放在类定义中,您将使它们全部内联。这不是等效的代码。
C ++中的最佳实践是尽可能多地将.cpp文件转移到.cpp文件中,并使.h文件尽可能简单。如果头文件中有#include
个指令,请减少该数量。在可能的情况下,使用类和结构的前向声明而不是完整定义。
唉,这些指南不适用于模板,这就是C ++编译速度太慢的原因。