初識C++
C++是在C之上基于對象,面向對象的編程語言。c++相比c在編程上更加模塊化,具象化。
C++代碼規(guī)范
●防衛(wèi)試聲明:
? ? ? ? ? ? ? ? ? ? #ifndef "name"
? ? ? ? ? ? ? ? ? ? #define"name"
? ? ? ? ? ? ? ? ? ? #endif
?

為了避免重復的定義和聲明有必要使用防衛(wèi)聲明
●頭文件:
標準的c++頭文件 沒有.h
#include<iostream>
#include<cmath>

前置聲明:先聲明存在命名為complex的class,編譯器才不會報錯
●class的聲明

藍色字體complex是類的名字,括號中的是本體。
public:可以被該類中的函數、子類的函數、其友元函數、該類的對象訪問。
private:只能由該類中的函數、其友元函數訪問。不能被該類的對象訪問。PS:數據部分最好放在私有
protected:可以被該類中的函數、子類的函數、其友元函數訪問,不能被該類的對象訪問。
Friend:可以訪問類內private和protected成員
構造函數:命名與類名相同,沒有返回值。主要作用于創(chuàng)建對象,初始化。re(r) == (re=r):類型名加括號表示創(chuàng)建臨時對象,這是構造函數的一種語法,這樣寫表示受過良好訓練。構造函數可以有很多個(重載)。
class模板如圖:

template<typename T>表示還未確定數據類型,用T表示
inline函數:在類中定義的函數成為inline函數,如real() image(),在類外你也可以寫inline,具體如何處理由編譯器決定。
const函數:表示不會修改類內數據,如果成員函數不加const,調用對象再加const就會報錯。
●參數傳遞
引用概念:
引用就是某一變量(目標)的一個別名,對引用的操作與對變量直接操作完全一樣。
引用的聲明方法:類型標識符 &引用名=目標變量名;
例:int a; int &ra=a; //定義引用ra,它是變量a的引用,即別名

此處參數為引用,4字節(jié)傳遞更快,且比指針看起來舒服
●返回值傳遞
使用引用傳遞,傳遞者無需知道接收者是以引用形式接收。C++也可以使用指針傳遞,但是接收者需要明確傳過來的東西是一個指針,這明顯沒有引用方便。

返回值的傳遞也有值傳遞和引用傳遞之分,使用引用返回必須保證返回的不是局部變量,在函數外已經存在,或者是動態(tài)內存分配出來的空間,或者是在函數內部創(chuàng)建的static變量這些分配的空間的生命周期如果大于該函數,就可以使用引用傳遞。
●操作符重載
操作符重載關鍵字:operator

灰色部分:編譯器處理的時候有隱藏的THIS,表示調用的左值C2,但是實際些代碼的時候不能手動填寫會報錯。而非成員函數參數要寫全
此處返回值不應是引用