使用的情況
在類的非靜態成員函式中返回類物件本身或物件的引用的時候return *this; //返回物件 return this; //返回物件的位址
當引數與成員變數名相同時。在建構函式中 引數與類成員相同時,不能寫成 x = x; 應為:this->x = x;
避免對同一物件進行賦值操作,判斷兩個物件是否相同時,使用this指標。
#include #include using namespace std;
class person
int get_age(void) const
person& add_age(int i)
private:
string name;
int age;
};
複製建構函式用乙個已有同類物件建立新物件進行資料初始化
語法形式:
類名 :: 類名(const 類名 & 引用名 ,……);
特點:
複製建構函式名與類名相同,並且也沒有返回值型別。
複製建構函式可寫在類中,也可寫在類外。
複製建構函式要求有乙個類型別的引用引數。
如果沒有顯式定義複製建構函式,系統自動生成乙個預設形式的複製建構函式。
class int
;void main()
#include using namespace std;
class box
int volume();
private:
int length, height, width;
};
自動呼叫的情況:
關於淺複製:
#include #include using namespace std;
class person
aaa::aaa(const aaa &a)
靜態成員
類成員冠以static生命時,成為靜態成員。
靜態資料成員為同類物件共享。
靜態成員函式與靜態資料成員協同操作。
靜態成員函式
靜態成員不屬於某乙個單獨的物件,而是為類的所有物件所共有
靜態成員函式的作用不是為了物件之間的溝通,而是為了能處理靜態資料成員: 保證在不依賴於某個物件的情況下,訪問靜態資料成員。
靜態成員函式來訪問非靜態資料成員。
#includeclass small_cat
static void display(small_cat &w)
;private :
int x ;
} ;class b
void display ()
private :
a aobject ;
} ;int main()
*友元函式和友元類不是在必要時不能使用。
類的包含是程式設計中一種軟體重用技術。即定義乙個新的類時,通過編譯器把另乙個類 「抄」進來。
當乙個類中含有已經定義的類型別成員,帶引數的建構函式對資料成員初始化,須使用初始化語法形式。
建構函式 ( 形參表 ) : 物件成員1(形參表 ) , … , 物件成員n (形參表 ) ;
物件成員的初始化
出現成員物件時,該類的建構函式要包含物件成員的初始化。如果建構函式的成員初始化列表沒有對成員物件初始化時,則使用成員物件的無參(預設)建構函式。
建立乙個類的物件時,要先執行成員物件自己的建構函式,再執行當前類的建構函式。
成員物件的構造函式呼叫次序和成員物件在類中的說明次序一致(宣告順序為:a1、b1、b2),與它們在成員初始化列表**現的次序無關(初始化列表順序為:b1、b2、a1)。
析構函式的呼叫順序相反
class score
;class student
~student();
void modify(string name1, string stu_no1, float s1, float s2, float s3);
void show();
};
2)類與物件
public class dog void hungry void sleeping 乙個類可以包含以下型別變數 構造方法 class person static void main string args 例如 hello hello new hello 這時呼叫的是hello的無引數構造方法 h...
類與物件(2)
1.類的定義 型別 type 是乙個概念的具體表示。依照oo的理念 如果不 能用內建型別表達乙個概念,則我們設計乙個新型別去表達 乙個概念。任何乙個資料型別都封裝兩方面的資訊 資料 操作 2.類的組成 1 一組資料成員 data member 定義了該類物件所共有的屬性 類似於結構體成員 2 一組成...
(2)類與物件
什麼是類 類即類別 種類,是物件導向設計最重要的概念,物件是特徵與技能的結合體,而類則是一系列物件相似的特徵與技能的結合體 在現實世界中 先有物件,再有類 世界上肯定是先出現各種各樣的實際存在的物體,然後隨著人類文明的發展,人類站在不同的角度總結出了不同的種類,如人類 動物類 植物類等概念 也就說,...