我很困惑在構造函數(如下圖所示)或方法本身中動態分配(QFile *和QTextStream *)的位置,如果方法GetCurrentStream()應該改變價值流。qt中的動態成員分配
頭文件
class QLogger {
public:
explicit QLogger();
~QLogger();
QTextStream& GetCurrenStream();
private:
QFile *file;
QTextStream *stream;
};
,並在相關的.cpp
QLogger::QLogger() {
file = new QFile;
stream = new QTextStream;
}
~QLogger() {
delete file;
delete stream;
}
QTextStream& GetCurrenStream() {
...
return *stream;
}
何地釋放在析構函數存儲?
我寧願構造函數初始化列表。我還會提供或防止複製構建和分配,因爲它現在可能會有未來的不好的意外。這是常見的錯誤模式。 – user2672165
我不是100%確定的,如果打電話給你的班級,QLogger是個好主意。 Q *是Qt類。技術上沒問題。但是也許Digia在他們的下一個版本中引入了一個QLogger類。這可能會變得有點混亂。 – Greenflow
另外我不會將我的類命名爲Q,因爲它可以將它與Qt自己的類區分開來。 – user2672165