即使定義只有一行,如代碼構造函數或int value() const;
,對於總是將聲明和定義分開來說,這是一種很好的做法嗎?有關C++模塊化的最佳實踐
我的目標是學習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);
}
}
這是一個非常基於意見的問題,在這裏並不完全適用。無論哪種方式都有理由。這樣做可以防止編譯器內聯你的構造函數,最終損害性能。 – 1201ProgramAlarm
@ 1201ProgramAlarm另一方面,存在像大多數增強的那些只有頭文件庫... :-) – skypjack
C++模塊功能可能會使它們相等 – paulm