2014-11-06 5 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

+0

Первый не статичный, он автоматический. – molbdnilo

ответ

2

Первый объявляет статическую переменную (обычно в стеке *), который будет умирать в конце кодового блока, в котором он определен.

Вторая динамически выделяет переменную (обычно на кучу *), что означает, что вы тот, кто может решить, где ее освободить с помощью удаления [] (и да, вы должны помнить об этом).

Смежные вопросы