久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

c++中對(duì)象的動(dòng)態(tài)初始化是什么?

What is dynamic initialization of object in c++?(c++中對(duì)象的動(dòng)態(tài)初始化是什么?)
本文介紹了c++中對(duì)象的動(dòng)態(tài)初始化是什么?的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

問(wèn)題描述

什么是 C++ 中對(duì)象的動(dòng)態(tài)初始化?

請(qǐng)用一個(gè)簡(jiǎn)單的例子來(lái)解釋...

Please explain with an simple example...

推薦答案

動(dòng)態(tài)初始化是在編譯時(shí)不知道初始化值.它在運(yùn)行時(shí)計(jì)算以初始化變量.

Dynamic initialization is that in which initialization value isn't known at compile-time. It's computed at runtime to initialize the variable.

示例,

int factorial(int n)
{
     if ( n < 0 )       return -1; //indicates input error
     else if ( n == 0 ) return 1;
     else               return n * factorial(n-1);
}

int const a = 10 ; //static initialization 
             //10 is known at compile time. Its 10!

int const b = factorial(8); //dynamic initialization 
                      //factorial(8) isn't known at compile time,
                      //rather it's computed at runtime.

也就是說(shuō),靜態(tài)初始化通常涉及常量表達(dá)式(在編譯時(shí)已知),而動(dòng)態(tài)初始化涉及非常量表達(dá)式.

That is, static-initialization usually involves constant-expression (which is known at compile-time), while dynamic-initialization involves non-constant expression.

static int c;//this is also static initialization (with zero)!

來(lái)自 C++ 標(biāo)準(zhǔn) (2003) 的 §3.6.2/1 說(shuō),

§3.6.2/1 from the C++ Standard (2003) says,

具有靜態(tài)存儲(chǔ)持續(xù)時(shí)間的對(duì)象(3.7.1) 應(yīng)為零初始化(8.5) 在任何其他初始化之前發(fā)生.零初始化和用常量初始化表達(dá)式統(tǒng)稱為靜態(tài)初始化;所有其他初始化是動(dòng)態(tài)的初始化.

Objects with static storage duration (3.7.1) shall be zero-initialized (8.5) before any other initialization takes place. Zero-initialization and initialization with a constant expression are collectively called static initialization; all other initialization is dynamic initialization.

所以有兩種初始化:

  • 靜態(tài)初始化:要么是零初始化,要么是用常量表達(dá)式初始化
  • 任何其他初始化都是動(dòng)態(tài)初始化.

還要注意,同一個(gè)變量可以在靜態(tài)初始化后動(dòng)態(tài)初始化.例如,請(qǐng)參閱此代碼:

Also note that the same variable can be dynamically-initialized after it has been statically-initialized. For example, see this code:

int d = factorial(8);
int main()
{
}

由于 d 是一個(gè)全局變量,它具有靜態(tài)存儲(chǔ).這意味著,根據(jù)§3.6.2.1,它在靜態(tài)初始化階段被初始化為 0,該階段發(fā)生在任何其他初始化發(fā)生之前.然后,在運(yùn)行時(shí),它使用從函數(shù) factorial() 返回的值動(dòng)態(tài)初始化.

Since d is a global variable, it has static storage. That means, according to §3.6.2.1 it's initialized to 0 at the static-initialization phase which occurs before any other initialization takes place. Then later, at runtime, it's dynamically-initialized with the value returned from the function factorial().

也就是說(shuō),全局對(duì)象可以被初始化兩次:一次是通過(guò)靜態(tài)初始化(即零初始化),然后在運(yùn)行時(shí),它們可以被動(dòng)態(tài)初始化.

That means, global objects can be initialized twice: once by static initialization (which is zero-initialization) and later, at runtime, they can be dynamically-initialized.

這篇關(guān)于c++中對(duì)象的動(dòng)態(tài)初始化是什么?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來(lái)源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問(wèn)題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

What do compilers do with compile-time branching?(編譯器如何處理編譯時(shí)分支?)
Can I use if (pointer) instead of if (pointer != NULL)?(我可以使用 if (pointer) 而不是 if (pointer != NULL) 嗎?)
Checking for NULL pointer in C/C++(在 C/C++ 中檢查空指針)
Math-like chaining of the comparison operator - as in, quot;if ( (5lt;jlt;=1) )quot;(比較運(yùn)算符的數(shù)學(xué)式鏈接-如“if((5<j<=1)))
Difference between quot;if constexpr()quot; Vs quot;if()quot;(“if constexpr()之間的區(qū)別與“if())
C++, variable declaration in #39;if#39; expression(C++,if 表達(dá)式中的變量聲明)
主站蜘蛛池模板: 久久人体视频 | a级片在线观看 | 中文字幕在线观看视频一区 | 久久精品久久久 | 91精品久久久久久久久99蜜臂 | 性色av一区二区三区 | 大陆一级毛片免费视频观看 | 国产成人网 | 国产精品亚洲综合 | 国产精品视频不卡 | 男人av在线播放 | 在线观看免费国产 | 一级黄片一级毛片 | 中文字幕视频在线 | 特级特黄特色的免费大片 | 极品在线| 国产探花在线精品一区二区 | 爱草在线 | 午夜精品在线 | 免费成年网站 | 欧美精品久久久久 | 国产欧美精品区一区二区三区 | 国产精品久久久久久久白浊 | 亚洲精视频 | 国产精品成人一区二区三区 | av在线亚洲天堂 | 一区二区三区不卡视频 | 欧美久久久电影 | 日韩国产一区二区三区 | 成年人黄色一级毛片 | 精品日韩一区二区 | 九九亚洲精品 | av成人在线观看 | 亚洲在线一区 | 蜜臀久久99精品久久久久久宅男 | 精品国产一区二区三区久久狼黑人 | 福利视频一区二区 | 亚洲国产成人av好男人在线观看 | 青青草原综合久久大伊人精品 | 欧美色a v | 亚洲激情综合 |