之前學(xué)校開C++課程的時(shí)候舱污,只是籠統(tǒng)的大概講了一下C++的一些基本語(yǔ)法,但都是很淺的知識(shí)。極客班的課程還能深入講解標(biāo)準(zhǔn)庫(kù)的東西办斑,確實(shí)是課堂上學(xué)不到的。
學(xué)習(xí)C++分為語(yǔ)言部分和標(biāo)準(zhǔn)庫(kù)的部分杆逗,在學(xué)好語(yǔ)言的時(shí)候乡翅,還要學(xué)習(xí)一些標(biāo)準(zhǔn)庫(kù)的東西。如果作為一名C++的工程師罪郊,不會(huì)標(biāo)準(zhǔn)庫(kù)的話蠕蚜,是沒有競(jìng)爭(zhēng)力的。所以悔橄,老師推薦的《C++ Primer》我也買來(lái)看了靶累,確實(shí)寫的很好,不愧是百科級(jí)別的書籍癣疟,但里面的很多C++11標(biāo)準(zhǔn)的一些代碼挣柬,目前我的編譯器還暫時(shí)識(shí)別不了。
C++代碼的基本形式:
頭文件:.h ? ?(自己寫的頭文件是雙引號(hào))
程序部分:.cpp
C語(yǔ)言時(shí)代睛挚,頭文件是 stdio.h 或者 cstdio邪蛔,輸入輸出用scanf和printf,寫的時(shí)候可能會(huì)少符號(hào)
C++語(yǔ)言時(shí)代:iostream ? ?輸入輸出方便許多扎狱,cin>>和cout<<
編寫自己的頭文件:
#ifndef 頭文件名(大寫)
#define ? ? 同上
#include
1.前置聲明
2.類聲明
3.類定義
#endif
class + 類名
{
數(shù)據(jù)成員定義在私有private里
成員函數(shù)定義在公有里侧到,絕大多數(shù)函數(shù)都放在public里
公有和私有順序可以交錯(cuò)
};
模板:
template//T為模板名
private:
T re,im;
complex c1(2.5,1.5);
complex c2(2,6);
內(nèi)聯(lián)函數(shù):
在函數(shù)內(nèi)部定義的是隱式內(nèi)聯(lián)函數(shù)
外部定義內(nèi)聯(lián)函數(shù)需加上 inline
inline const string & shorterString(const string &s1, const string &s2)
{
return s1.size() <= s2.size() ? s1 : ?s2 ;
}
創(chuàng)建對(duì)象會(huì)調(diào)用其構(gòu)造函數(shù)
complex c1(2,1);
cout<< c1.real();
cout<< c2.imag();
不能通過(guò)對(duì)象調(diào)用私有成員
數(shù)據(jù)一定要被自己內(nèi)部的函數(shù)傳遞出去委乌,不能被外部的函數(shù)訪問
函數(shù)如果要被外界調(diào)用的床牧,放在公有里
函數(shù)只是做內(nèi)部的處理,可以作為私有
構(gòu)造函數(shù):
函數(shù)名稱與類名一致
可以用于參數(shù)
參數(shù)(實(shí)參)指定默認(rèn)值
沒有返回類型
利用構(gòu)造函數(shù)的特殊用法:初始化形參
構(gòu)造函數(shù)可以有很多個(gè)
構(gòu)造函數(shù)在參數(shù)不確定但又重載的情況下遭贸,會(huì)編譯錯(cuò)誤
double reaal() const { return re; ?}//不會(huì)改變數(shù)據(jù)的戈咳,加上const
參數(shù)傳遞值時(shí),盡量以傳遞引用(by reference)的方式更高效快捷方便
傳遞過(guò)去的時(shí)候,不希望對(duì)方改著蛙,這時(shí)要加const
友元函數(shù):
相同的一個(gè)類內(nèi)的各個(gè)部分互為友元
數(shù)據(jù)一定放在私有里
參數(shù)盡可能以引用來(lái)傳
返回值也盡量以引用來(lái)傳
在類的本體里的函數(shù)删铃,應(yīng)該加const的就加
構(gòu)造函數(shù)特殊語(yǔ)法