程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++棧對象與堆對象

C++棧對象與堆對象

編輯:C++入門知識

司徒正美

棧對象相當局部對象,堆對象相當於一種能共享於各函數或語句塊的對象。棧對象在語句塊執行完就自動銷毀,堆對象需要手動銷毀。

#include <iostream> 

using namespace std; 

struct Object{ 

    //★★★★構造函數和類型同名,沒有返回值類型 

    Object(){ 

        cout <<"這是構造函數"<<endl; 

    } 

    //析構函數名字為類型名前面加一波浪字符;另外也沒有返回值類型。 

    ~Object(){ 

        std::cout << "這是構析函數!" << endl; 

    } 

}; 

int main(){ 

    //定義一個對象,就相當在其間調用到該對象的構造函數 

    Object o; 

    { 

        Object o1;//用棧對象來測試構析函數,語句塊結構時自然會銷毀局部變量 

        Object *o2 = new Object;//定義堆對象 

      //  delete o2;//手動銷毀堆對象 

    } 

    while(1); 

}

銷毀堆對象

#include <iostream> 

using namespace std; 

struct Object{ 

    //★★★★構造函數和類型同名,沒有返回值類型 

    Object(){ 

        cout <<"這是構造函數"<<endl; 

    } 

    //析構函數名字為類型名前面加一波浪字符;另外也沒有返回值類型。 

    ~Object(){ 

        std::cout << "這是構析函數!" << endl; 

    } 

}; 

int main(){ 

    //銷毀堆對象 

    Object* o1; 

  

    { 

        o1 = new Object; 

    } 

  

    delete o1; 

    while(1); 

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved