物件導向程式設計:
如何定義物件? 同型別物件用一 個通用的類來定義
class c ; c ca, cb;
乙個類用變數來定義資料域,用函式定義行為。
classcirle
cirle(
double
newr)
double
get()
};
建構函式:
類中有 一種特殊的「建構函式」,在建立物件時被自動呼叫。(通常用來初始化類)
constructors:
initialize objects (建構函式:初始化物件)
has the same name as the defining class (與類同名)
no return value (including "void"); (無返回值)
constructors can be overloaded (可過載)
may be no arguments (可不帶引數)
類可不宣告建構函式,編譯器會提供乙個帶有空函式體的無參建構函式。
用類建立物件:
classname objectname; eg:circle circle1;
classname objectname(arguments); eg:circle circle2(5.5);
物件訪問運算子(.):
objectname.datafield // 訪問物件的資料域
objectname.function(arguments) // 呼叫 物件的乙個函式
eg:circle1.radius = 10;
int area = circle1.getarea();
類似於結構體的使用方法。但當問資料域的時候,類的資料域必須是共有屬性。
#include#include#include
using
namespace
std;
class
cirle
cirle(
double
newr)
double
get()
}; int
main()
物件指標與動態物件:
circle circle1;circle *pcircle = &circle1;
cout
<< "
the radius is
"<< (*pcircle).radius
<< "
the area is
"<< (*pcircle).getarea() <(*pcircle).radius = 5.5
;cout
<< "
the radius is
"<< pcircle->radius
<< "
the area is
"<< pcircle->getarea() << endl;
在堆中建立物件:
在函式中宣告的物件都 在棧上建立,函式返回, 則物件被銷毀。
為保留物件,你可以用new運算子在堆上建立它。
classname *pobject = new classname(); //用無參建構函式建立物件
classname *pobject = new classname(arguments); //
用有參建構函式建立物件
circle *pcircle1 = new circle(); //
用無參建構函式建立物件
circle *pcircle2 = new circle(5.9); //
用有參建構函式建立物件
//程式結束時,動態物件會被銷毀,或者
delete pobject; //
用delete顯式銷毀
資料域封裝:
資料域採用public的形式有2個問題
1.資料會被類外 的方法篡改
2.使得類難 於維護,易出現bug
C 程式設計入門 上 string類的基本用法
string類中的函式 1.構造 2.追加 3.賦值 4.位置與清除 5.長度與容量 6.比較 7.子串 8.搜尋 9.運算子 追加字串 string s1 welcome to c cout s1 endl s1 now becomes welcome to c string s2 welcome...
C 類和物件入門
物件的含義是指具體的某乙個事物,即在現實生活中能夠看得見摸得著的事物。在物件導向程式設計中,物件所指的是計算機系統中的某乙個成分。在物件導向程式設計中,物件包含兩個含義,其中乙個是資料,另外乙個是動作。物件則是資料和動作的結合體。物件不僅能夠進行操作,同時還能夠及時記錄下操作結果。這是什麼玩意,通俗...
C 入門高階之3 類和物件
1.物件導向的四個主要特徵 抽象,封裝,繼承,多型 2.與普通的函式不同,類的成員函式需要在實現的時候使用類名來限制,例如 void car getprice 3.類成員的三種訪問許可權 public 公有型別 private 私有型別 protected 保護型別 私有成員只能被本類的成員函式訪問...