C Primer第五版 7 5 3節練習

2021-07-05 07:45:21 字數 627 閱讀 8591

練習7.43;假定有乙個名為nodefault的類,它有乙個接受int的建構函式,但是沒有預設建構函式。定義類c,c有乙個nodefault型別的成員,定義c的預設建構函式。

答:見程式 練習7.43.cpp 說明:c不能呼叫,因為nodefault缺少預設的建構函式

練習7.44:下面這條宣告合法嗎?如果不,為什麼?

vectorvec(10);
答:不合法,nodefault缺少預設的建構函式

練習7.45:如果在乙個練習中定義的vector的元素型別是c,則宣告合法嗎?為什麼?

答;不合法,還是因為nodefault缺少預設的建構函式

練習7.46:下面哪些論斷是不正確的?為什麼?

(a) 乙個類必須至少提供乙個建構函式 //正確

(b) 預設建構函式是引數列表為空的建構函式。//正確

(c) 如果對於類來說不存在有意義的預設值,則類不應該提供預設建構函式

//錯誤,參看262頁7.5.3節預設建構函式的作用。

(d) 如果類沒有定義預設建構函式,則編譯器將為其生成乙個並把每個資料成員初始化成相應型別的預設值。

//錯誤:編譯器還沒有那麼強大,編譯器只是按照自己的理解來合成乙個預設建構函式

C Primer第五版 2 4 3節練習

練習2.30 對於下面的這些語句,請說明物件被宣告成了頂層const還是底層const?const int v2 0 v2的值不能被改變,所以這是乙個頂層const int v1 v2 int p1 v1,r1 v1 const int p2 v2 p2存放的是v2的位址,不能間接改變v2的值,但p...

C Primer第五版 2 5 3節練習

練習 2.36 關於下面的 請指出乙個變數的型別以及程式結束時它們各自的值。include int main 練習 2.37 賦值是會產生引用的一類典型表示式,引用的型別就是左值的型別。也就是說,如果i是int,則表示式 i x的型別是int 根據這一特點,請指出下面的 中每乙個變數的型別和值。in...

C Primer第五版 3 2 2節練習

練習3.2 編寫一段程式從標準輸入中一次讀入一整行,然後修改該程式使其一次讀入乙個詞。練習3.3 請說明string類的輸入運算子和getline函式分別是如何處理空白字元的。練習 3.4 編寫一段程式讀入兩個字串,比較其是否相等並輸出結果。如果不相等,輸出較大的那個字串。改寫上述程式,比較輸入的兩...