一 基本概念
類、物件、成員變數、成員函式。
物件導向三大概念:封裝、繼承、多型。
二 類的封裝
1 封裝,是物件導向程式設計最基本的特性。把資料(屬性)和函式(操作)合成乙個整體,
2 類成員的訪問控制
1)public修飾的成員變數 方法 在類的內部 類的外部都能使用
2)protected:修飾的成員變數方法,在類的內部使用 ,在繼承的子類中可用 ;其他類的外部不能被使用
3) private: 修飾的成員變數方法 只能在類的內部使用 不能在類的外部
三 建構函式
1 c++中的類可以定義與類名相同的特殊成員函式。建構函式是一種特殊的成員函式,與其他成員函式不同,不需要使用者來呼叫它,而是在建立物件時自動執行。
2 建構函式分類,建立物件時呼叫。
1)無引數建構函式: test t1, t2;
2)帶引數的建構函式
a)括號法 :test5 t1(10);
b) 等號法:test5 t2 = (20, 10)
c 直接呼叫:test5 t3 = test5(30);
3)拷貝建構函式
a) 用乙個物件去初始化另乙個類:test4 t2 = t1; //用t1來初始化 t2
b) 括號法:同上,寫法不同 test4 t2(t1); //用t1物件 初始化t2物件
c)函式呼叫,用匿名物件初始化其它物件
#include using namespace std;
class location
//copy建構函式 完成物件的初始化
location(const location & obj) //copy建構函式
~location()
int getx () int gety ()
private : int x , y ;
} ;//業務函式 形參是乙個元素
void f(location p)
//copy建構函式 完成物件的初始化
location(const location & obj) //copy建構函式
~location()
int getx () int gety ()
private : int x , y ;
} ; location g()
void objplay3()
//解決方案: 手工的編寫拷貝建構函式 使用深copy
name(const name& obj1)
~name()
}protected:
private:
char *m_p ;
int m_len;
};//物件析構的時候 出現coredump
void objplaymain()
void main91()
3 執行順序
1) 成員變數的初始化順序與宣告的順序相關,與在初始化列表中的順序無關
2) 初始化列表先於建構函式的函式體執行
4建構函式和析構函式的呼叫順序研究
1)當類中有成員變數是其它類的物件時,首先呼叫成員變數的建構函式,呼叫順序與宣告順序相同;之後呼叫自身類的建構函式
2)析構函式的呼叫順序與對應的構造函式呼叫順序相反
3)初始化列表用來給const屬性賦值。
#include using namespace std;
class a
~a()
protected:
private:
int a;
};//1 建構函式的初始化列表 解決: 在b類中 組合了乙個 a類物件 (a類設計了建構函式)
//根據建構函式的呼叫規則 設計a的建構函式, 必須要用;沒有機會初始化a
//新的語法 constructor::contructor() : m1(v1), m2(v1,v2), m3(v3)
class b
b(int _b1, int _b2, int m, int n) : a1(m), a2(n), c(0)
~abcd()
int geta()
protected:
private:
int a;
int b;
int c;
};class mye
mytest(int a, int b)
~mytest()
protected:
private:
int a;
int b;
int c;
public:
int getc() const
void setc(int val)
};int main()
八 物件的動態建立和釋放
c++提供了較簡便而功能較強的運算子new和delete來取代malloc和free函式。
注意: new和delete是運算子,不是函式,因此執行效率高。
class test
~test()
private:
int a;
};//分配物件new delete
//相同 和 不同的地方 new能執行型別建構函式 delete操作符 能執行類的析構函式
void main()
C 類和物件 類和物件
c 中物件的型別稱為類,類代表了某一批物件的共性和特徵,類是物件的抽象,而物件是類的具體例項,類是抽象的,不占用記憶體,而物件是具體的,占用 儲存空間,這點很重要,讀者需要牢記。類是使用者自己指定的型別,如果程式中要用到類型別,必須自己根據需要進行宣告,或者使用別人已設計好的類,c 標準本身並不提供...
C 物件和類
1,特殊的類 字串string include include using namespace std int main 類似於標準庫函式,我們不需要記住每種 類 的全部操作,只需要在使用過程中記住一些常用的操作就可以了。如果有需要的話,可以求助於相關書籍或網路 2,當我們對string進行種種操作...
C (類和物件)
類成員函式 類的成員函式指標那些把定義和原型寫在類定義內部的函式,就想類定義中的其他變數一樣。類訪問修飾符 類成員可以定義為public,private或protected。預設情況下是定義為private。建構函式 類的建構函式是一種特殊的函式,在建立乙個新物件是呼叫。析構函式 類的析構函式也是一...