之前想學(xué)C++想好久了,學(xué)校也上過這門課,不過講到指針就到期末了,也沒學(xué)到啥深的東西,后來買了本C++ Primer Plus,就自己慢慢看著,等到這次看到網(wǎng)上有培訓(xùn)班,就報了試試,跟著看看吧。我是個新手,超水的那種,,文中有什么不對的地方請各位大牛多多批評指正,小弟感激不盡啊
回到正題,這周主要學(xué)的是類的定義,包括構(gòu)造函數(shù),操作符重載啥的,我將老師上課講的一些重點記錄整理如下
一 養(yǎng)成良好的編程習(xí)慣
1.寫頭文件時寫上ifndef 文件名
2.寫函數(shù)時盡量用內(nèi)聯(lián)函數(shù)inline
3.寫構(gòu)造函數(shù)時,在定義的同時就賦值可提高代碼效率
4.C++比其他語言效率高,速度快,因此編程時盡量簡潔代碼,提高效率,挖掘加強它的特性
二 寫類時應(yīng)注意的東西
1.數(shù)據(jù)一定放在private,不能直接暴露出來,要通過public中的函數(shù)去取
2.參數(shù)最好用引用來傳
3.返回值最好也用引用來傳
4.函數(shù)分為會改變數(shù)據(jù)內(nèi)容的和不會改變數(shù)據(jù)的,不會改變數(shù)據(jù)內(nèi)容的需要加上CONST(意為不改變數(shù)據(jù)內(nèi)容),類的本體里的函數(shù)應(yīng)該加const就得加,const的位置是加在函數(shù)小括號的后面,大括號的前面
5.構(gòu)造函數(shù)有一個特殊的語法,在定義時就賦值
6.友元函數(shù)直接寫在private中,拿數(shù)據(jù)比普通數(shù)據(jù)要快一些,相同class的各個objects互為友元,既數(shù)據(jù)可相互取
三 編程中遇到的問題
1.我在編程時在成員函數(shù)時打上了兩個參數(shù),被提示運算符函數(shù)的參數(shù)太多,上網(wǎng)查了一下,才知道是成員函數(shù)時只應(yīng)該用一個參數(shù),比如a+b;中a本身就是第一個參數(shù),而定義成友員函數(shù)要定義兩個參數(shù)
2.我原本在頭文件中定義了一個類,也聲明和定義了操作符的重載,但是在源文件中使用操作符時卻提示我沒有與操作數(shù)匹配的運算符,上網(wǎng)查了很久,也沒查出結(jié)果,后來才發(fā)現(xiàn)是自己調(diào)用構(gòu)造函數(shù)時格式錯誤,導(dǎo)致生成的類沒有被賦值,既沒有操作數(shù);
大概就是醬~