オブジェクトがスコープ外に出た場合でも、オブジェクトがより長く存続する必要がある場合は、ポインターを使用する必要がありますよね?
ここでは、ムービー m; を作成します。. スタック上に作成され、スコープ外になると自動的に削除されます。
//In some header file
typedef struct{
Qstring name;
int id;
//...
} Movie ;
QList<Movie> movieList; //It's the same as the standard list of c++.
//In a function somewhere else
void doSomething(/*...*/)
{
//Do something...
Movie m = { /* ... */ };
movieList.push_back( m );
}
リストは、引数として型 T の定数参照を取ります。それで住所ですよね?ただしMovie m;
、範囲外になると削除されます。どういうわけか、リスト内のアイテムが残ります。
ただし、私の質問は、ポインターを使用Movie m;
してヒープ上に作成する必要がありますか、それともこれで問題ありませんか? より良いスタイルとは?