编辑:我知道在循环体之前声明一个对象更有效,因为它在每次函数调用时调用构造函数和析构函数,而不是每次循环迭代一次。假设由于这种推理,类型 A 的对象在循环体之外更有效。
我想知道如果以下
void foo()
{
static A var; //A is a class with a constructor
... //stuff done with var
}
比
void foo()
{
A var; //A is a class with a constructor
... //stuff done with var
}
因为前者会调用 A 的构造函数和析构函数一次,而不是后者每次调用 foo 时都会调用它。我通常在所有本地对象中问这个问题。