2.2 物件指標
2.3 string類
2.4 向函式傳遞物件
3. 靜態成員
c++為成員函式提供了乙個名字為this
的指標,這個指標稱為自引用指標。每當建立時,系統就把this指標初始化為指向該物件,即this
指標的值是當前呼叫成員函式的物件的起始位址。每當呼叫乙個成員函式時,系統就自動把this
指標作為乙個隱含的變數傳給該函式。
所謂的物件陣列是指每乙個陣列元素都是物件的陣列。
物件陣列的元素時物件,不僅具有資料成員,還有函式成員。
類名 陣列名[下標表示式];
score rec[5]
;//定義score類的物件陣列rec,含有5個物件陣列元素
無參建構函式
a b[5]
;
單參建構函式
a b[5]
=;a c[5]
=;
多個引數的建構函式
a a[3]
=;
每個物件初始化之後都會在記憶體中佔據一定空間。因此,既可以通過物件名訪問物件,也可以通過物件位址來訪問物件。
類名* 物件指標名;
a* a;
當物件指標指向null時,仍可以訪問成員函式即靜態資料成員;
stu *a=
null;a-
>
fun();
cout<>data<
#include
運算子
示例注釋
=s1=s2;
用s1給s2賦值
+s1+s2
用s1和s2連線成乙個新串
+=s1+=s2
等價於s1=s1+s2
==s1==s2
判斷s1與s2是否相等
!=s1!=s2
<
s1<=
s1<=s2
>
s1>s2
>=
s1>=s2
s1[i]
訪問物件s1中下標為i的字元
>>
cin>>s1
從鍵盤輸入
<<
cout《輸出
(傳值呼叫)
void
function
(a obj)
//函式定義
intmain()
實參和形參物件指標指向同一片記憶體空間,形參物件改變也會影響實參物件。(雙向傳遞)
void
function
(a *obj)
//函式定義
intmain()
為物件起別名,節省記憶體空間
void
function
(a &obj)
//函式定義
intmain()
同類的不同物件之間共享
注意:靜態資料成員,類內宣告,類外定義初始化
靜態成員函式的作用是為了處理靜態資料成員。一般來說靜態成員函式不訪問類中的非靜態成員。若確實需要,靜態成員函式只能通過物件名或物件指標或物件引用訪問該物件的非靜態資料成員。
定義格式
static
inta
(int m,
int n)
;
呼叫
aclass::a(
4,5)
;b.a(
4,5)
;p->a(
4,5)
;//物件指標->靜態成員函式名(實參表)
注意
(1) 一般情況下,靜態成員函式主要用來訪問靜態資料成員,若要訪問非靜態成員,需通過物件名或物件指標或物件引用訪問。
(2) 私有靜態成員函式不能被類外部的函式和物件訪問
(3) 使用靜態成員函式的乙個原因是,可以用它在建立任何物件之前呼叫靜態成員函式,以處理靜態資料成員
(4)靜態資料成員是類的一部分,而不是物件的一部分。如果在類外呼叫公有的靜態成員函式建議使用如下格式
類名::靜態成員函式名();
aclass::a(
);obj.a(
);//也正確
c 學習筆記一
2007 9 4 引用,該型別的變數不直接儲存所包含的值,而是指向它所要儲存的值。c 的引用型別有四種 類 代表 陣列 介面。一下 表示類b從類 a中繼承 class a class b a 類的成員有以下型別 成員常量,代表與類相關聯的常量值。域,即類中的變數。成員方法,複雜執行類中的計算和其它操...
C 學習筆記 一
c 學習筆記 一 by heiyeluren 學習 visual c 入門經典 的個人筆記。1.函式的過載 函式過載提供了建立多個同名函式的能力。我們確定乙個函式是獨一無二的方法是通過三項方法,分別是是通過返回值的型別,函式名,函式 引數等三項內容。我們函式過載主要就是使用不同的引數來確定使用那個函...
C 學習筆記一
c中的記憶體分配方式 1.靜態儲存區域 在程式開始之前就可以分配,且在程式執行過程中始終存在 2.棧 儲存單元在其上分配,單元外自動釋放,多見內建 資料型別於此 3.堆 動態分配,即程式執行時分配此部分記憶體.由使用者分配且要負責釋放.生存期由使用者決定,不受範圍限制 stdlib.h提供mallo...