2014-11-06 119 views
0

是什么在以下两种方式创建类对象之间的区别:C++对象,之间的差异的动态和静态

class cat 
{ 
    private: 
    int age; 
    public: 
    cat(); 
}; 


int main(void) 
{ 
    cat object; // static object 
    cat *pointer = new cat(); // dynamic object 
} 
+0

这里的关键字是堆和堆栈:https://stackoverflow.com/questions/5836309/stack-memory-vs-heap-memory https://stackoverflow.com/questions/79923/what-and-where-是堆栈和堆 – Lanting 2014-11-06 09:45:46

+0

第一个不是静态的,它是自动的。 – molbdnilo 2014-11-06 10:02:41

回答

2

第一种是声明一个静态变量(通常在堆栈*),将死在其定义的代码块的末尾。

第二个是动态分配一个变量(通常在堆*上),这意味着你是一个可以通过delete []决定何处释放的变量(是的,你应该记得这样做)。

相关问题