以下两种方式创建类对象有什么区别:
class cat
{
private:
int age;
public:
cat();
};
int main(void)
{
cat object; // static object
cat *pointer = new cat(); // dynamic object
}
Run Code Online (Sandbox Code Playgroud)
第一个是声明一个静态变量(通常在堆栈*上),该变量将在定义它的代码块的末尾处消失。
第二个是动态分配一个变量(通常在堆上*),这意味着您可以决定使用delete[]在哪里释放它(是的,您应该记住这样做)。