GeekBand C++面向?qū)ο蟾呒壘幊蹋ㄉ希?1


C++ programs 代碼基本形式
  • .h (header files) -- classes declaration
  • .cpp --ex.cpp
  • .h (header files) -- standard library

開始寫代碼

1.Header 中的防衛(wèi)式聲明 --
#ifndef __NAME__
#define __NAME__


0.
1.
2.

#endif

2.上圖代碼框中的1 --- class 的聲明(declaration) --- 需要注意的點(diǎn)
  1. 類的聲明分為兩部分
class complex     // class head
{     
....             // class body
}
  1. 請將數(shù)據(jù)放在 private 中

  2. constructor (ctor,構(gòu)造函數(shù)) 的一種大氣的寫法 及 構(gòu)造函數(shù)的特點(diǎn)

public:
 complex (double r=0, double i=0)
  :  re(r),  im(i)                 //initiaization list
{}                      //注意賦值與初始化的不同
  • 函數(shù)名稱 = 類名稱
  • 擁有參數(shù)
  • 參數(shù)可以有默認(rèn)值
  • 沒有返回類型
  1. constructor 的 overloading (重載)
  • 重載常發(fā)生在構(gòu)造函數(shù)身上
  • 其實(shí)重載經(jīng)過編譯后實(shí)際名稱是不同的
  1. const 的使用 -- 盡可能使用 const
  • 當(dāng)不會改變數(shù)據(jù)內(nèi)容時(shí),我們可以加 const
  1. 參數(shù)的傳遞 與 返回值的傳遞 :by value or by reference (to const)
  • 如果可以的話,最好傳引用
  • by reference 傳遞速度快,但改變時(shí)會跟著改變,所以當(dāng)不需要對方改時(shí), 可以用 to const
  • 在 return by reference 時(shí),需要注意的一點(diǎn)是 -- 傳遞者無需知道接受者是以 reference 形式接受的
  1. 什么情況下可以 by reference ?
  • local 變量,local 對象 這種在函數(shù)已結(jié)束,生命就消失的不能返回reference ,也就是說,返回局部對象的reference是錯誤的
  1. friends (友元)
  • 相同 class 的各個 objects 互為 friends

3.上圖代碼框中的2 --- class body 之外的各種定義(definition) --- 操作符的重載(operator overloading)
  1. 成員函數(shù)的重載
  • this 綁定到左側(cè)運(yùn)算對象,成員運(yùn)算符函數(shù)的(顯示)參數(shù)數(shù)量比運(yùn)算對象的數(shù)量少一個
  • 當(dāng)我們定義重載的運(yùn)算符時(shí),必須首先決定選擇為成員或者非成員,但是輸入輸出運(yùn)算符必須時(shí)非成員函數(shù),因?yàn)樗淖髠?cè)對象必須是 istream 或 ostream
  1. 非成員函數(shù)的重載
  • 沒有 this
  1. 無論是成員函數(shù)還是非成員函數(shù)的重載,都需要考慮是否需要加 const 以及 是否需要 by reference

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容