面向對象

1.面向對象技術的基本概念

對象集绰,類,繼承

2.C++中的空類默認產生哪些成員函數

編譯器默認產生默認構造函數知押,析構函數,拷貝構造函數鹃骂,賦值函數台盯。

3.構造函數

strct Test{
    Test(int) {}
    Test() {}
    void fun(){}
};
int main(){
    Test a(1);
    a.fun();
    Test b();//這里沒有參數傳遞的構造函數直接用Test b;就可以了
            //加了括號反而沒有真正實例化類對象
    b.fun(); //編譯器會在這里檢查出錯誤,b不是類對象
    return 0;
}

4.成員變量

  • 靜態(tài)成員變量時在一個類的所有實例間共享數據的畏线,通常在定義時要初始化
  • 靜態(tài)成員變量若為私有静盅,可以通過共有靜態(tài)成員函數訪問
  • 初始化列表中的變量初始化順序是按照成員變量的聲明順序來執(zhí)行的
  • 常量必須在構造函數的初始化列表里初始化,或者將其設置成static
class A
{
     const int Size = 0; //不對寝殴!
     A(){const int Size = 9;//對蒿叠!
     static const int Size =9;//對!
}

5.構造函數和析構函數

  • 析構函數virtual原因:當pBase指針撤銷時蚣常,調用的是CBase的析構函數市咽,而不是CChild的析構函數,這時內存泄露史隆。因為CChild構造時會先調用CBase的構造函數魂务,然后CChild的構造函數,只有基類的析構函數聲明為virtual時泌射,析構時才會以同樣的順序依次調用基類的析構函數粘姜。
CBase *pBase;
CChild c;
pBase = &c;
  • 構造函數不能是虛的
  • 虛函數的開銷:存在虛函數的對象需要維護一個向量表,如果僅是一個很小的類熔酷,且不想派生其他類孤紧,那么根本沒必要使用虛函數。
  • 析構函數的發(fā)生:函數返回時

6.String的函數

class String{
    public:
       String(const char *str = NULL);
       String(const String &other);
       ~String(void);
       String & operate = (const String &other);
    private:
       char *m_data;
}    
//構造函數
String::String(const char* str)
{
    if( NULL == str)
    {
        m_data = new char[1];
        *m_data = '\0';
    }
    else
    {
         int length =  strlen(str);
         m_data = new char[length+1];
         strcpy(m_data,str);
    }
} 

//析構函數
String::~String(void)
{
   delete [] m_data;
}

//拷貝構造函數
String::String(const String &other)
{
   int length = strlen(other.m_data);
   m_data = new char[length+1];
   strcpy(m_data,other.m_data);
}
//賦值函數
String& String::operater=(const String &other)
{
   if(this = &other)
      return *this;
  delete [] m_data;
  int length = strlen(other.m_data);
  m_data = new char[length+1];
  strcpy(m_data,other.m_data);
  return *this;
}

7.多態(tài)的概念

  • 一個接口拒秘,多種方法号显。封裝和繼承是為了代碼重用臭猜,而多態(tài)是為了接口重用。在調用函數時押蚤,傳遞給函數的父對象的值可以是子對象蔑歌,在運行時根據傳遞的對象來確定具體的操作。

重載和覆蓋的區(qū)別:重載是靜態(tài)的揽碘,重載是編譯器根據函數不同參數表次屠,對同名函數進行修飾,在編譯期間已經綁定了雳刺。而覆蓋是在子類重新定義了父類的虛函數后劫灶,父類根據賦給他的不同子類,動態(tài)的調用屬于子類的該函數掖桦,實現動態(tài)綁定本昏。
覆蓋需要一致的參數表和返回值,而重載參數表可以不同枪汪。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末涌穆,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子雀久,更是在濱河造成了極大的恐慌蒲犬,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件岸啡,死亡現場離奇詭異,居然都是意外死亡赫编,警方通過查閱死者的電腦和手機巡蘸,發(fā)現死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來擂送,“玉大人悦荒,你說我怎么就攤上這事∴诙郑” “怎么了搬味?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蟀拷。 經常有香客問我碰纬,道長,這世上最難降的妖魔是什么问芬? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任悦析,我火速辦了婚禮,結果婚禮上此衅,老公的妹妹穿的比我還像新娘强戴。我一直安慰自己亭螟,他們只是感情好,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布骑歹。 她就那樣靜靜地躺著预烙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪道媚。 梳的紋絲不亂的頭發(fā)上扁掸,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機與錄音衰琐,去河邊找鬼也糊。 笑死,一個胖子當著我的面吹牛羡宙,可吹牛的內容都是我干的狸剃。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼狗热,長吁一口氣:“原來是場噩夢啊……” “哼钞馁!你這毒婦竟也來了?” 一聲冷哼從身側響起匿刮,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤僧凰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后熟丸,有當地人在樹林里發(fā)現了一具尸體训措,經...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年光羞,在試婚紗的時候發(fā)現自己被綠了绩鸣。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡纱兑,死狀恐怖呀闻,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情潜慎,我是刑警寧澤捡多,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站铐炫,受9級特大地震影響垒手,放射性物質發(fā)生泄漏。R本人自食惡果不足惜倒信,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一淫奔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧堤结,春花似錦唆迁、人聲如沸鸭丛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鳞溉。三九已至,卻和暖如春鼠哥,著一層夾襖步出監(jiān)牢的瞬間熟菲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工朴恳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抄罕,地道東北人。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓于颖,卻偏偏與公主長得像呆贿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子森渐,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內容