constexpr怎么讀 C 11中的constexpr到底怎么用。只知道const不懂constexpr?
C 11中的constexpr到底怎么用。只知道const不懂constexpr?Constexpr用于定義可在編譯時(shí)計(jì)算的常量表達(dá)式。1. 編譯器時(shí)間常數(shù)函數(shù),編譯器可以計(jì)算函數(shù)的值。例如,可以
C 11中的constexpr到底怎么用。只知道const不懂constexpr?
Constexpr用于定義可在編譯時(shí)計(jì)算的常量表達(dá)式。
1. 編譯器時(shí)間常數(shù)函數(shù),編譯器可以計(jì)算函數(shù)的值。例如,可以用constexpr函數(shù)更好地替換某些宏函數(shù)。
2. 編譯時(shí)常量數(shù)據(jù),如一些在類和類模板中定義的靜態(tài)常量數(shù)據(jù),過(guò)去是用static const來(lái)定義的,現(xiàn)在可以用constexpr來(lái)定義,這樣可以達(dá)到更好的效率和安全性。
c constexpr構(gòu)造函數(shù)有什么作用?
將constexpr添加到構(gòu)造函數(shù)時(shí),構(gòu)造函數(shù)只能為具有初始化列表的屬性賦值。如果函數(shù)體為空,則構(gòu)造函數(shù)可用于其他constexpr
constexpr表示函數(shù)或表達(dá)式可在編譯時(shí)求值,并可用作常量,用constexpr構(gòu)造函數(shù)創(chuàng)建的對(duì)象也是如此,當(dāng)你想在編譯階段決定內(nèi)容時(shí),它可以用作常量。
這樣,我們可以獲得更高的效率。
有關(guān)詳細(xì)信息,請(qǐng)參閱我的文章:
C 11新功能(3)-const、const expression和constexpr
對(duì)象/數(shù)組初始化什么時(shí)候需要常量表達(dá)式?
不能將指向const的指針?lè)峙浣o指向非const的指針,因此應(yīng)使用strcpy,即打開(kāi)另一個(gè)內(nèi)存逐個(gè)復(fù)制字符。示例如下:const char*expr=“good idea”char*buf=new char[strlen(expr)1]strcpy(buf,expr)strcpy prototype:external char*strcpy(char*DeST,char*SRC)用法:#include<string。H>函數(shù):將SRC表示的以null結(jié)尾的字符串復(fù)制到dest表示的數(shù)組。注意:Src和dest表示的內(nèi)存區(qū)域不能重疊,dest必須有足夠的空間來(lái)容納Src字符串并將指針?lè)祷豥est。
“constchar*”格式轉(zhuǎn)“char*”格式怎么轉(zhuǎn)?
在c入門第五版中,只涉及c 11的特性,因此不支持static const int n。以下答案假設(shè)您的文章來(lái)自c入門第五版。
本段中的常量靜態(tài)數(shù)據(jù)成員是指同時(shí)添加constexpr和static關(guān)鍵字的數(shù)據(jù)成員。由于向其添加了constexpr,因此可以在類中定義初始值(通常,靜態(tài)成員變量不能在類中定義)。constexpr的特性決定了初始值可以在類中定義,因?yàn)閏onstexpr限制它必須是常量表達(dá)式??梢栽诰幾g時(shí)用相應(yīng)的文本值替換所有constexpr變量。
因此,由constexpr和static關(guān)鍵字修改的數(shù)據(jù)成員實(shí)際上并不存在,而是由值替換。我想可能是為了方便??赡蹸只替換相應(yīng)范圍內(nèi)的,所以它只替換類內(nèi)的。因此,添加到類中的帶有constexpr和static關(guān)鍵字的變量實(shí)際上并不存在,因此如果需要在類外使用常量靜態(tài)數(shù)據(jù)成員,還需要在類外定義它
首先,在代碼中多次調(diào)用具有相同參數(shù)的函數(shù)時(shí),可以使用默認(rèn)參數(shù)減少參數(shù)傳遞,簡(jiǎn)化代碼。其次,需要提供一個(gè)默認(rèn)值,如窗口大小、顏色默認(rèn)為黑色。第三,用默認(rèn)參數(shù)在構(gòu)造函數(shù)中減少類中的一些復(fù)制,當(dāng)?shù)谝粋€(gè)參數(shù)是類引用時(shí),它可以復(fù)制構(gòu)造函數(shù)。第四,它使用const和constexpr變量作為默認(rèn)參數(shù),這與具體實(shí)現(xiàn)有關(guān)。第五,在某些情況下,使用默認(rèn)參數(shù)可以發(fā)揮與重載函數(shù)相同的作用