私はこれを研究していますが、決定的な答えはありません。Qt ウィジェット アプリケーションは、終了時にメモリをクリーンアップしますか? QObject に由来する違いはありますか? ガベージコレクションがある場合、なぜQSharedPointer
クラスがあるのですか? 私のコードの次のコンテキストから質問しています。
void MainWindow::sync()
{
QString destPathUnixStyle = makePathUnix( _RootPath );
QString rsync_cmd = QString("rsync/rsync -a root@%1:/data/ '%2'").arg( _ip ).arg( destPathUnixStyle );
QProcess *syncProcess = new QProcess(this);
syncProcess->start( rsync_cmd );
qDebug() << "Sync started..";
connect(syncProcess, SIGNAL(finished(int)), this, SLOT(syncFinished()) );
_syncInProgress = true;
}
アプリケーションが終了すると、syncProcess
クリーンアップされますか? ユーザーが終了せずにこの関数を 1000 回呼び出した場合、メモリ リークが発生しますか?
アップデート
上記の関数が頻繁に何度も呼び出されることを考えるとQProcess
、メンバー変数を宣言する方が良いQSharedPointer
ですか、それとも上記のコードを改善するために使用するだけですか?