(GeekBand)C++面向對象高級編程(上)第一周筆記(1)

第一節(jié) C++編程簡介

一谚赎、學習課程的前導知識

曾經學過一門編程語言(C為最佳)媚狰,理解一些基礎常用的名詞岛杀,如:變量(variables),類型(types)崭孤,作用域(scope)类嗤,循環(huán)(loops),流程控制辨宠。
了解程序執(zhí)行的前提:編譯土浸,執(zhí)行。
了解如何編譯彭羹,執(zhí)行。

二泪酱、學習課程的目標

培養(yǎng)正規(guī)的、大氣的編程習慣

以良好的方式編寫C++ class
(基于對象 Object Based)

  • class with pointer members(Complex)
  • class with pointer members(String)

學習class之間的關系
(面向對象 Object Oriented)

  • 繼承
  • 復合
  • 委托

三、C++的歷史

  • B語言(1969)
  • C語言(1972)
  • C++語言(1983)
    (new C->C with Class->C++)
  • Java語言
  • C#語言

四呈础、C++的演化

C++分為C++語言和C++標準庫兩個部分瓤狐。

  • C++98(1.0)
  • C++03(TR1)
  • C++11(2.0)
  • C++14

五、推薦書單

  • 《C++ Primer》
  • 《C++ PROGRAMMING LANGUAGE》
  • 《Effective C++》
  • 《THE C++ STANDARD LIBRARY》
  • 《STL源碼剖析》

第二節(jié) 頭文件與類的聲明

回頭看看發(fā)現(xiàn)第一節(jié)的筆記完全就是copy了侯老師的ppt…<+.+>!…這節(jié)來換個風格斯撮,嘿嘿经伙。這節(jié)課的內容不多也很簡單,就挑兩個相對重要的知識點分享一下吧。

一帕膜、 c++ programs

我們在開始寫代碼之前枣氧,一定要對自己即將實現(xiàn)的東西有個大概的構想。下面是一個C++ programs代碼的基本形式垮刹。

//lalala.h文件

class lalala
{
pirvate:
    //
public:
    //
};

//test.cpp文件(入口)

#include<iostream>        
#include<string>        //標準庫頭文件
#include"lalala.h"      //自寫頭文件
using namespace std;
int main()
{

    return 0;
}

也就是說一個標準的C++ programs通常要包含.h文件达吞,.cpp文件,有時也會調用c++標準庫的頭文件荒典。

二酪劫、防衛(wèi)式聲明(guard)

在我們觀察大牛或者視頻學習的過程中寺董,總會在他們的頭文件中看到下面的代碼覆糟,那么它究竟有什么用呢?

#ifndef LALALA_H
#define LALALA_H

/////

#endif

簡單來說遮咖,這是通過宏功能來防止重復調用該頭文件滩字。

#ifndef LALALA_H  //如果LALALA_H這里沒有被使用
#define LALALA_H  //則將下方的內容進行宏替換到LALALA_H

/*替換內容*/

#endif  //結束替換

讓我們來試驗一下。

現(xiàn)在我寫了三個文件盯滚,分別是test.cpp(入口),lalala.h,lalala1.h踢械。它們的定義如下圖所示。

//test.cpp


#include<iostream>
#include"lalala.h"
#include"lalala1.h"
using namespace std;
int main()
{
    lalala a;
    return 0;
} 

//lalala.h

//#ifndef LALALA_H
//#define LALALA_H
class lalala
{
private:
    //
public:
    //
};
//#endif

//lalala1.h

#include"lalala.h"

它們的包含關系如下圖所示:

這樣一來test.cpp就包含了兩個lalala.h魄藕,在編譯時會提示“‘class’ type redefinition”内列。這時只需要為重復調用的頭文件lalala.h加上防衛(wèi)式聲明即可(注釋掉的部分)。為了保險起見背率,不論是否有被重復調用的可能话瞧,我們都為頭文件加上這樣的聲明。

第三節(jié) 構造函數(shù)

來分享下這堂課的心得寝姿。

  • class函數(shù)可以在類內定義(inline)也可以在類外定義
  • 盡量為所有function使用inline修飾
  • 能否成為inline函數(shù)最終取決于編譯器
  • 變量的初始化分兩步交排,第一步為創(chuàng)建,第二步為賦值饵筑。參數(shù)列表是在第一步創(chuàng)建變量時進行初始化埃篓,所在類中盡可能使用參數(shù)列表而非賦值進行初始化
  • 內容不多,相對簡單根资,就分享這么多吧架专。

第四節(jié) 參數(shù)傳遞與返回值

這節(jié)內容比較有趣,分享一下~

  • 構造函數(shù)可以放在private中(例如Singleton設計模式中)
  • 盡量為只進行讀操作的函數(shù)使用const修飾(在函數(shù)名之后玄帕,例如double real() const{…})
  • 接口是一個類的框架
  • 用const修飾實例則實例為一個常量部脚,其中的函數(shù)只有讀權限(即使用const修飾函數(shù))
  • pass by value(值)/reference(to const)(引用,指針4字節(jié))盡可能選擇后者
  • 引用是一種受限制的指針裤纹,類似棧委刘,隊列與鏈表的關系
  • pass by referennce通常使用在兩種場景,一種是用作參數(shù)傳遞,另一種為返回值傳遞锡移。做參數(shù)傳遞時盡可能使用const修飾(除非打算修改其中的值)呕童。當在返回值傳遞時,不可以使用在local object上(函數(shù)執(zhí)行完畢會被銷毀罩抗,其中變量的引用會指向一個不明確的地方)
  • friend友元函數(shù)會破壞class的封裝性拉庵,不宜多用
  • 相同class的各個object互為友元(complex c1,c2 將c1作為參數(shù)傳進c2中的成員函數(shù)func(),func()函數(shù)可以調用參數(shù)c1的私有成員)
  • _doapl=>do assignment plus
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末套蒂,一起剝皮案震驚了整個濱河市钞支,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌操刀,老刑警劉巖烁挟,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異骨坑,居然都是意外死亡撼嗓,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門欢唾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來且警,“玉大人,你說我怎么就攤上這事礁遣“呶撸” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵祟霍,是天一觀的道長杏头。 經常有香客問我,道長沸呐,這世上最難降的妖魔是什么醇王? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮崭添,結果婚禮上寓娩,老公的妹妹穿的比我還像新娘。我一直安慰自己呼渣,他們只是感情好根暑,可當我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著徙邻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪畸裳。 梳的紋絲不亂的頭發(fā)上缰犁,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天,我揣著相機與錄音,去河邊找鬼帅容。 笑死颇象,一個胖子當著我的面吹牛,可吹牛的內容都是我干的并徘。 我是一名探鬼主播遣钳,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼麦乞!你這毒婦竟也來了蕴茴?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤姐直,失蹤者是張志新(化名)和其女友劉穎倦淀,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體声畏,經...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡撞叽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了插龄。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片愿棋。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖均牢,靈堂內的尸體忽然破棺而出糠雨,到底是詐尸還是另有隱情,我是刑警寧澤膨处,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布见秤,位于F島的核電站,受9級特大地震影響真椿,放射性物質發(fā)生泄漏鹃答。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一突硝、第九天 我趴在偏房一處隱蔽的房頂上張望测摔。 院中可真熱鬧,春花似錦解恰、人聲如沸锋八。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挟纱。三九已至,卻和暖如春腐宋,著一層夾襖步出監(jiān)牢的瞬間紊服,已是汗流浹背檀轨。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留欺嗤,地道東北人参萄。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像煎饼,于是被迫代替她去往敵國和親讹挎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內容