條款50 提高對C 的認識

2022-03-17 19:02:41 字數 517 閱讀 5199

class

base ;

class derived: public

base ;

derived *pd = new

derived;

pd->f(10); //

錯誤!名字查詢先於型別檢查,現在derived類中找到f函式,然後進行型別檢查,報錯

問題在於derived::f隱藏了base::f,即使它們取的是不同的引數型別;所以編譯器要求對f的呼叫取乙個double*,而10這個數字當然不行。

如果想讓derived的使用者可以訪問base::f,可以很容易地通過乙個using宣告來完成:

class derived: public

base ;

derived *pd = new

derived;

pd->f(10); //

正確,呼叫base::f

提高對C 的認識

c 中有很多 東西 c,過載,物件導向,模板,例外,名字空間。這麼多東西,有時讓人感到不知所措。怎麼弄懂所有這些東西呢?c 之所以發展到現在這個樣子,在於它有自己的設計目標。理解了這些設計目標,就不難弄懂所有這些東西了。c 最首要的目標在於 和c的相容性。很多很多c還存在,很多很多c程式設計師還存在...

C 的50項條款

條款1 盡量用const和inline而不用 define 條款2 盡量用而不用 條款3 盡量用new和delete而不用malloc和free 條款4 盡量使用c 風格的注釋 第二章 記憶體管理 條款5 對應的new和delete要採用相同的形式 條款6 析構函式裡對指標成員呼叫delete 條款...

對c語的認識

c語言是什麼。c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯 處理低階儲存器 產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。怎樣學好c語言 1 學好c語言,你可以很好地應付任何一種程式設計工具。2 一定要多上機練習,通過程式了解相關知識。幾經反...