最贊回答 / stars_wisper
系統可以釋放對象,但不能釋放對象引用的東西。作者強調過,用了new一定要用delete。視頻末尾不是有一個示例嗎。<...code...>
2018-11-23
已采納回答 / 兩極反轉
#include "pch.h"#include <iostream>#include <string>#include<string>using namespace std;class Student?{public: void setName(string _name) { m_strName=_name; } string getName()? { return m_strName; } void setGender(string gender)? { m_...
2018-11-09
最贊回答 / CassanBob
全局區里的變量在整個程序的執行期間都有效,不會被釋放,即抹除;棧區里的生命周期與對應他前一個的花括號有關。當執行語句結束,棧區里的變量所占空間被釋放,當整個程序運行結束,全局區里的變量所占空間被釋放。顯而易見,全局區的變量存活時間比棧區的長
2018-11-07
已采納回答 / lzq_get
這里要提到數據結構中棧和堆的區別,棧是一種線性數據結構,管理比較簡單,后入先出,而堆是一種樹形結構,在處理優先級事件上具有較大優勢;棧中創建對象是由編譯器為對象在??臻g中分配內存,函數執行結束即自動銷毀,無法進行有效管理;而使用堆建立類對象,會在棧中保留指向該對象的指針,堆中通常保存程序運行時動態創建的對象,C++堆中存放的對象需要由程序員分配釋放,它存在程序運行的整個生命期,直到程序結束由OS釋放。而java中對象的創建默認是存放在堆中,也不需要程序員主動釋放內存,會有GC垃圾回收機制進行釋放
2018-10-10