條款7 C 注意區分 和

2021-10-06 02:57:12 字數 1199 閱讀 9029

05/13/2020

要點

intx(

0);int x =0;

int x;*

*加粗樣式*

*int x =

;//通常來說,編譯器把它當成是 int x;來處理

int x =

0;

對於以上例子,有人會看出是初始化並賦值,其實並沒有賦值操作。其實初始化和賦值是關於呼叫不同函式完成的。

widget w1;

widget w2 = w1;

//呼叫拷貝建構函式

w1 = w2;

//呼叫拷貝賦值運算子

禁止內建型別之間進行隱式窄化型別轉換(narrowing conversion)

double x,y,z;

int sum

;//錯誤的

widget w1

;//預設初始化物件例項 == widget w1;

wodget w2()

;//被宣告為函式,這是錯誤的

class

widget

;widget w1(10

,true);

widget w2

;//會被呼叫initializer_list這個建構函式,10和true被強制轉型為long double

class

widget

;//編譯錯誤 因為只會匹配到initializer_list這乙個建構函式,

//而要求把乙個int(10)和乙個double(5.0)強制轉換為bool型別,在花括中不被允許,因為是窄化的。

widget w2

;

class

widget

;widget w2

; widget w3

;// 呼叫initializer_list, w4被強制轉換成float型別,再轉換為double型別

effective modern c++ 第五版(中文版)條款7

7 C 類的使用

定義了乙個類之後,便可以如同用int double等型別符宣告簡單變數一樣,建立該類的物件,稱為類的例項化。類的定義實際上是定義了一種型別,類不接收或儲存具體的值,只作為生成具體物件的 藍圖 只有將類例項化,建立物件 宣告類的變數 後,系統才為物件分配儲存空間。class computer 類定義 ...

7C 折線分割平面

我們看到過很多直線分割平面的題目,今天的這個題目稍微有些變化,我們要求的是n條折線分割平面的最大數目。比如,一條折線可以將平面分成兩部分,兩條折線最多可以將平面分成7部分,具體如下所示。input 輸入資料的第一行是乙個整數c,表示測試例項的個數,然後是c 行資料,每行包含乙個整數n 0output...

C 學習筆記(7) C 語句

c 程式是一組函式,而每個函式又是一組語句。c 有好多種語句型別,上篇筆記總結的表示式可以轉化為語句,通常被稱作表示式語句。除此之外,還有空語句 返回語句 return 0 復合語句 程式塊 等。以上又被統稱為簡單語句。相對於簡單語句,c 還有類似於c語言的特殊語句,條件語句 迴圈語句以及轉移語句。...