以下列两种方式创建类对象有什么区别:
class cat
{
private:
int age;
public:
cat();
};
int main(void)
{
cat object; // static object
cat *pointer = new cat(); // dynamic object
}
答案 0 :(得分:2)
第一个是声明一个静态变量(通常在堆栈*上),它将在定义它的代码块的末尾死掉。
第二个是动态分配变量(通常在堆上*),这意味着你可以决定用delete []来解除分配它的位置(是的,你应该记得这样做)。