一時変数は、受け取る変数がない場合に解放される変数です。
クラスA
{ public: A() { std :: cout << "1 A()\ n"; }
A(const A&aa)
{ std :: cout << "コピー構築\ n"; }
〜A()
{ std :: cout << "2〜A()\ n"; } };
//関数によって返される型が値の場合、戻り値は一時変数です
TestA()
{ return A(); }
//変数が返されると、コピー構造が呼び出されて一時変数が生成されます
TestA2()
{ A aa1 = A(); aa1を返します。}
int main()
{ A(); //変数の受信がない場合にリリース
TestA();
system( "pause");
}
変数を返すときは、変数ではなく一時変数または参照を返すのが最善です。