《c primer》讀書筆記6

2021-09-30 02:17:23 字數 1255 閱讀 9204

筆記範圍:

2.3節 早在

2.1裡作者就留給我們乙個問題:要成為

c++的一等公民需要那些條件(練習

2.2)?個人認為這個問題非常重要。它直接關係到我們對類的設計思想和努力的方向,顯然我們的方向該是:盡可能的讓我們設計的類成為語言的一等公民,換句話說,在類的設計中,對於運算子的支援要比一般的成員函式更重要,這樣做的另乙個考慮是為我們以後學習

stl提供思維的延續,可見。如果我們只把

c++當成

oo的語言,是不會這樣想的,

對於初學者來說,想在本節完全學會很好類的**實現,幾乎是不現實的,在本節的內容裡,我們的任務是理解設計思路、了解類的基本結構,學會用偽**設計乙個能滿足需求的

class

,下面是我在本節中所理解的東西,

第一步:明確設計需求,我們可以仔細看一下作者寫出的功能表,顯然,就功能而言,它並不完善,但能滿足一方的需求,這裡我們可以感覺一下作者的專業品質:以使用者需求為目標,我們的軟體常常有這樣問題,幾百

mb的程式,事實上我們真正用到的可能不足百分之一,成本和資源都得到很大的浪費,好像只滿足了設計者的虛榮心,

第二步:確定要封裝的資料,當然,我們先要明白的是:封裝的目的是為了保證物件資料的相對安全,要通分理解封裝的涵義,比如:

class a;

class b

幾天前就有人問我這樣的問題。,

b是否可以操作

s中的資料,答案是:

yes。但是如果這樣問。。

s中的資料在

b是否可用,答案則是,

no,原因在於對於封裝的資料而言,只有通過

s自身的方法才有權使用。那麼

b如何操作

s的資料呢?這就引出了第三步.

第三步,設計公有介面。個人覺得介面和方法是有區別的,介面包括運算子和方法,當然他們都靠函式完成。但對函式的實現目標有著明顯的不同,運算子考慮的是物件之間的關係。而方法考慮的是物件本身屬性的操作,對於設計乙個資料型別來說顯然前者更重要,對於內建的陣列來說。我們並沒有考慮其本身的東西。但是,誰能說他不算

class

呢?不過不是我們設計的罷了,

接下來,談談一些習慣問題,可能先看國內教材的人都會發現。在本書中

public

寫在private

之前。看起來好像沒有多大的區別,其實我們應該發現,如果私有成員寫前面關鍵字

private

可以不寫,這不利於**的可讀性,我們要時刻為自己以後的合作提供良好習慣和**風格。這樣也該是程式設計師的基本素質之一吧?

c primer 讀書筆記6

else 用,操作符改寫為一行。std cout total std endl,total trans switch.case中,case標號必須是整型常量表示式。switch內部變數定義 只能在最後乙個標號或default標號後面定義變數。四種除錯中非常有用的常量 file 檔名 line 當前行...

《C Primer》讀書筆記(6)

1.類的預設建構函式只是在類沒有定義建構函式的時候才自動加上去的,而如果定義了乙個建構函式,則不會新增預設建構函式了。此時如果還想要預設建構函式,需要自己寫乙個預設建構函式。2.友元函式和友元類 include stdafx.h include using namespace std class a...

C primer 讀書筆記

第2 章 變數和基本型別 1 變數直接初始化和變數 複製初始化 int ival 1024 direct initialization int ival 1024 copy initialization 初始化不是賦值 2 內建型別復 制初始化和直接初始化幾乎沒有區別 但 對類型別物件來 說,有些初...