我正在制作一些矩阵类,我想知道何时创建了一个临时对象,它是函数的本地对象,对吗?所以它应该在函数返回时超出范围但我不知道为什么在这种情况下不会发生这种情况我可以在函数返回后使用它。
这是一个示例,这是构造函数:
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
指针从析构函数访问该对象这正常吗?那么临时变量是在堆上创建的?!