亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++中四種對象生存期和作用域以及static的用法總結分析

2020-01-26 15:53:42
字體:
來源:轉載
供稿:網友
一、四種對象生存期和作用域


棧對象
隱含調用構造函數(程序中沒有顯式調用)

堆對象
隱含調用構造函數(程序中沒有顯式調用),要顯式釋放

全局對象、靜態全局對象

全局對象的構造先于main函數

已初始化的全局變量或靜態全局對象存儲于.data段中

未初始化的全局變量或靜態全局對象存儲于.bss段中

靜態局部對象

已初始化的靜態局部變量存儲于.data段中

未初始化的靜態局部變量存儲于.bss段中

復制代碼 代碼如下:

#include <iostream>
using namespace std;
class Test
{
public:
    Test(int n) : n_(n)
    {
        cout << "Test " << n_ << " ..." << endl;
    }
    ~Test()
    {
        cout << "~Test " << n_ << " ..." << endl;
    }
private:
    int n_;
};
int n;          // 未初始化的全局變量,初始值為0。n存儲于.bss段中。(block started by symbol)
int n2 = 100;   // 已初始化的全局變量,初始值為100。n2存儲于.data段中。
Test g(100);        // 全局對象的構造先于main函數
static Test g2(200);
int main(void)
{
    cout << "Entering main ..." << endl;
    Test t(10);     // 棧上創建的對象,在生存期結束的時候自動釋放
    {
        Test t(20);
    }
    {
        Test *t3 = new Test(30);        // 堆上創建的對象,要顯式釋放
        delete t3;
    }
    {
        static int n3;          // n3存儲于.bss段中      (編譯期初始化)
        static int n4 = 100;    // n4存儲于.data段中 (編譯期初始化)
        static Test t4(333);    // t4對象運行期初始化   .data段
    }
    cout << "Exiting main ..." << endl;
}



二、static 用法總結
1. 用于函數內部修飾變量,即函數內的靜態變量。這種變量的生存期長于該函數,使得函數具有一定的“狀態”。使用靜態變量的函數一般是不可重入的,也不是線程安全的,比如strtok(3)。

2. 用在文件級別(函數體之外),修飾變量或函數,表示該變量或函數只在本文件可見,其他文件看不到也訪問不到該變量或函數。專業的說法叫“具有internal linkage”(簡言之:不暴露給別的translation unit)。

C語言的這兩種用法很明確,一般也不容易混淆。


由于C++引入了類,在保持與C語言兼容的同時,static關鍵字又有了兩種新用法:
3.用于修飾類的數據成員,即所謂“靜態成員”。這種數據成員的生存期大于class的對象(實例/instance)。靜態數據成員是每個class有一份,普通數據成員是每個instance 有一份。

4. 用于修飾class的成員函數,即所謂“靜態成員函數”。這種成員函數只能訪問靜態成員和其他靜態成員函數,不能訪問非靜態成員和非靜態成員函數。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美亚州一区二区三区| 亚洲午夜国产成人av电影男同| 夜夜嗨av一区二区三区四区| 不卡av在线播放| 91国偷自产一区二区三区的观看方式| 日韩中文字幕网| 国产精品一香蕉国产线看观看| 中文字幕日韩高清| 欧美专区国产专区| 久久人人爽亚洲精品天堂| 最新的欧美黄色| 日韩免费观看在线观看| 人九九综合九九宗合| 91久久夜色精品国产网站| 欧美日韩在线免费观看| 欧美性做爰毛片| 久久久精品国产一区二区| yellow中文字幕久久| 欧美日韩国产一中文字不卡| 福利精品视频在线| 欧美精品18videosex性欧美| 日韩精品极品毛片系列视频| 欧美成人剧情片在线观看| 国产精品综合不卡av| 欧美激情精品久久久| 欧美乱妇高清无乱码| 久久久999精品免费| 91久久精品国产91久久| 日韩成人在线免费观看| 国产精品老女人精品视频| 日韩毛片中文字幕| 午夜精品蜜臀一区二区三区免费| 毛片精品免费在线观看| 91探花福利精品国产自产在线| 亚洲一区av在线播放| 欧美精品一区二区三区国产精品| 911国产网站尤物在线观看| 国产日韩欧美电影在线观看| 久久精品久久精品亚洲人| 欧美黄色免费网站| 91精品视频免费观看| 一区二区欧美日韩视频| 欧美亚洲国产日本| 伊人伊人伊人久久| 成人性生交大片免费看视频直播| 日韩中文理论片| 91欧美精品午夜性色福利在线| 色悠悠国产精品| 国产成人亚洲精品| 日韩精品在线免费观看视频| 亚洲欧洲在线免费| 亚洲乱亚洲乱妇无码| 日韩在线视频线视频免费网站| 日本午夜人人精品| 欧美色另类天堂2015| 国产精品免费福利| 国产精品久久久久秋霞鲁丝| 欧美一级高清免费| 欧美日韩福利电影| 亚洲图片欧美日产| 欧美日韩免费网站| 4p变态网欧美系列| 2019中文字幕免费视频| 日av在线播放中文不卡| 国产精品你懂得| 91精品国产网站| 亚洲电影av在线| 美女久久久久久久久久久| 国产精品夫妻激情| 国产91精品视频在线观看| 国产玖玖精品视频| 91精品国产91久久久久久最新| 精品日韩视频在线观看| 国产精品视频公开费视频| 欧美一级淫片播放口| 欧美成人亚洲成人日韩成人| 亚洲欧美国产制服动漫| 欧美性69xxxx肥| 日韩中文字幕在线免费观看| 欧美精品性视频| 亚洲精品色婷婷福利天堂| 亚洲3p在线观看| 亚洲精品久久久久中文字幕欢迎你| 国产午夜精品美女视频明星a级| 国产精品久久国产精品99gif| 97视频国产在线| 国产精品久久久久久久久男| 国模gogo一区二区大胆私拍| 日韩av在线精品| 日韩av在线网| 国产精品久久久久久久久久久新郎| 欧美精品福利在线| 成人亚洲激情网| 久久精品国产一区二区电影| 国产精欧美一区二区三区| 亚洲视频电影图片偷拍一区| 色狠狠av一区二区三区香蕉蜜桃| 555www成人网| 亚洲精品成人网| 欧美高清在线视频观看不卡| 欧美极度另类性三渗透| 欧美日韩在线视频一区二区| 91精品国产91久久久久久最新| 国内精品一区二区三区四区| 国产精品久久久久久亚洲调教| 国产欧美日韩免费| 丝袜情趣国产精品| 亚洲男人的天堂在线播放| 亚洲天堂网在线观看| 亚洲综合在线中文字幕| 国模私拍一区二区三区| 欧美亚洲激情视频| 欧美在线视频免费播放| 中文字幕亚洲情99在线| 久久久这里只有精品视频| 伦伦影院午夜日韩欧美限制| 亚洲在线视频福利| 亚洲综合精品一区二区| 欧美激情日韩图片| 国产成人一区二区| 国产精品丝袜久久久久久不卡| 国产不卡在线观看| 午夜免费久久久久| 91精品在线观看视频| 亚洲乱码av中文一区二区| 久久精品视频网站| 国产精品一香蕉国产线看观看| 91精品啪在线观看麻豆免费| 国产一区二区av| 欧美日韩亚洲视频一区| 欧美精品videossex性护士| 欧美美最猛性xxxxxx| 国产亚洲精品美女| 国产热re99久久6国产精品| 亚洲天堂成人在线| 日韩精品亚洲元码| 国产精品高潮呻吟视频| 国产亚洲精品高潮| 成人h片在线播放免费网站| 亚洲精品不卡在线| 国产午夜精品久久久| 久久人人97超碰精品888| 亚洲精品中文字幕有码专区| 欧美日韩国产专区| 日韩在线小视频| 国产丝袜一区二区三区| 亚洲国产欧美在线成人app| 国产精品久久婷婷六月丁香| 午夜剧场成人观在线视频免费观看| 伦伦影院午夜日韩欧美限制| 色狠狠av一区二区三区香蕉蜜桃| 欧美精品久久一区二区| 日韩激情在线视频| 精品日韩视频在线观看| 日韩激情在线视频| 成人综合国产精品| 亚洲2020天天堂在线观看| 96pao国产成视频永久免费| 亚洲美女视频网| 日韩欧美中文字幕在线播放| 欧美最近摘花xxxx摘花| 精品成人国产在线观看男人呻吟| 日韩av男人的天堂| 亚洲欧美日韩爽爽影院|