为什么此代码有效(matrix
是一个类):
const int max_matrix_temp = 7;
matrix&get_matrix_temp()
{
static int nbuf = 0;
static matrix buf[max_matrix_temp];
if(nbuf == max_matrix_temp)
nbuf = 0;
return buf[nbuf++];
}
matrix& operator+(const matrix&arg1, const matrix&arg2)
{
matrix& res = get_matrix_temp();
//...
return res;
}
buf
在这做什么,以及它如何使我们免于垃圾值以及为什么声明static
?请正确启发..
答案 0 :(得分:0)
我无法告诉你为什么代码按原样组织,但是静态使用它会使函数退出。如果不使用static,那么它将在堆栈上分配并稍后重写。