私はいくつかのマトリックスクラスを作成していますが、一時オブジェクトがいつ作成されるのか疑問に思っていましたが、それは関数に対してローカルですか? そのため、関数が戻ったときに範囲外になるはずですが、この場合、関数が戻った後に使用できる理由がわかりません。
以下に例を示します。これはコンストラクターです。
int *data; //member of class
Matrix3(const int (&ar)[N*N])
{
data = const_cast<int*>(ar);
}
そして、これが私がそれを使用する方法です:
Matrix3 m = { {1,2,3,4,5,6,6,6,6} };
data
これで、ポインタを介してデストラクタからそのオブジェクトにアクセスできますか? 一時変数はヒープ上に作成されますか?!