C 11與C 98的區別(更)

2021-08-17 10:32:57 字數 700 閱讀 9575

## c++11與c++98的區別

> 本文參考了許多鄧凡平老師的blogc++11學習之路

- 這倆天學qt的時候發現遇到了 很多c++11的特性 於是決定點c++11與c++98的區別,不定時更新

1. 空指標(nullptr)取代了之前的null

2. 字串中加入了raw字串,定義形式為:r"附加定界符(字串)附加定界符"

在定界符之間的字串都不會轉義。

3. c++推出「移動」的概念,此概念不同於拷貝,拷貝的結果是倆個指標都指向了新的內容,而移動則是乙個物件完全掏空自己,把自己的所有內容交給另乙個物件。「移動」的概念適用的地方:節省拷貝次數,提公升程式的執行效率。其執行的過程與拷貝函式類似,只是在拷貝結束之後,將變數直接清空。

> 注:移動建構函式a::a(a&& a);其中的引數型別為&&表示a的右值引用型別,它沒有名字,不能取位址;若為&則表示a的左值引用型別,它有名字,可以取位址;之所以將移動建構函式定義為&&是為了和拷貝建構函式區分開來,在我們呼叫建構函式的時候,若我們將乙個右值引用型別作為變數輸入,我們就會呼叫移動建構函式,若我們將左值引用型別作為引數,則會呼叫移動建構函式。,我們要保證

移動構造/賦值函式被呼叫,而不是

拷貝構造/賦值函式被呼叫。所以我們需要使用std::move()函式,將乙個左值引用轉化為右值引用,則會呼叫移動建構函式。若沒有定義移動構造或移動賦值函式,編譯器會呼叫對應的拷貝構造或拷貝賦值函式。

C 98課的主要內容

今天主要學習了一下內容 1 asp.net 門戶 asp.net是。netframework的一部分,可提供用於建立動態web應用程式的類和工具。建立,編寫和部署asp.net web應用程式 1 asp,net 4和visual web developer中的新增功能 2 asp net 概述 3...

c 11中nullptr(與NULL的區別)

首先呢,要明白一點兒,null是乙個無型別的東西,而且是乙個巨集。而巨集這個東西,從c 誕生開始,就是c 之父嗤之以鼻的東西,他推崇盡量避免巨集。而在他的faq中,也有相應的乙個關於null與0的解釋,也談到了這一點兒。stroustrup c style and technique 在c 標準中,...

C 11 初始值 與 的區別

include include using namespace std a1 類物件成員變數的預設值 b1 初始值列std initializer list b2 使用初始值列initializer list class hello hello hello const hello obj endif...