Giáo trình C++ Đại Học Bách Khoa (phần 5) - Pdf 16

Ch
Ch
Ch
Ch
ơ
ơ
ơ
ơ
ng
ng
ng
ng
3
3
3
3
đố
đố
đố
đố
i
i
i
i
t
t
t
t




&
&
&
Class)
Class)
Class)
Class)
Mụcđíchchơngnày:
1.Kháiniệmvềđónggóidữliệu.
2.Khaibáovàsửdụngmộtlớp.
3.Khaibáovàsửdụngđốitợng,contrỏđốitợng,thamchiếuđối
tợng.
4.Hàmthiếtlậpvàhàmhuỷbỏ.
5.Khaibáovàsửdụnghàmthiếtlậpsaochép.
6.
Vaitròcủahàmthiếtlậpngầmđịnh.
1.
1.
1.
1.
Đố
Đố
Đố
Đố
i
i
i
i
t
t

Đố
i
i
i
i
t
t
t
t




ng
ng
ng
ng
=
=
=
=
D
D
D
D




li

c
NgônngữC++
-41-
dữliệukhôngquantrọngđốivớingờisửdụng.Vớimộtđốitợngđiểm,
ngờitachỉquantâmđếnviệccóthểthựchiệnđợcthaotácgìtrênnómà
khôngcầnbiếtcácthaotácđóđợcthựchiệnnhthếnào,cũngnhđiềugì
xảyrabêntrongbảnthânđốitợngđó.Tathờngnóiđólàsựtrừutợng
hoádữliệu(khicácchitiếtcàiđặtcụthểđợcgiấuđi).
Đónggóicónhiềulợiíchgópphầnnângcaochấtlợngcủachơng
trình.Nólàmchocôngviệcbảotrìchơngtrìnhthuậnlơihơnrấtnhiều:một
sựthayđổicấutrúccủamộtđốitợngchỉảnhhởngtớibảnthânđốitợng;
ngờisửdụngđốitợngkhôngcầnbiếtđếnthayđổinày(vớilậptrìnhcấu
trúcthìngờilậptrìnhphảitựquảnlýsựthayđổiđó).Chẳnghạncóthể
biểudiễntoạđộmộtđiểmdớidạngsốthực,khiđóchỉcóngờithiếtkế
đốitợngphảiquantâmđểsửalạiđịnhnghĩacủađốitợngtrongkhiđó
ngờisửdụngkhôngcầnhaybiếtvềđiềuđó,miễnlànhữngthayđổiđó
khôngtácđộngđếnviệcsửdụngđốitợngđiểm.
Tơngtựnhvậy,tacóthểbổsungthêmthuộctínhmàuvàmộtsốthao
táclênmộtđốitợngđiểm,đểcóđợcmộtđốitợngđiểmmàu.Rõrànglà
đónggóichophépđơngiảnhoáviệcsửdụngmộtđốitợng.
Tronglậptrìnhhớngđốitợng,đónggóichophépdữliệucủađối
tợngđợcchelấpkhinhìntừbênngoài,nghĩalànếungờidùngmuốntác
độnglêndữliệucủađốitợngthìphảigửiđếnđốitợngcácthông
điệp(message).ởđâycácphơngthứcđóngvaitròlàgiaodiệnbắtbuộc
giữacácđốitợngvàngờisửdụng.Tacónhậnxét:
Lờigọiđếnmột
phơngthứclàtruyềnmộtthôngbáođếnchođốitợng
.
Cácthôngđiệpgửitớiđốitợngnàosẽgắnchặtvớiđốitợngđóvàchỉ
đốitợngnàonhậnđợcthôngđiệpmớiphảithựchiệntheothôngđiệpđó;

2.
2.
2.
2.
L
L
L
L




p
p
p
p
2.1
2.1
2.1
2.1
Khai
Khai
Khai
Khai
b
b
b
b
á
á

class
<tênlớp>{
private:
private:
private:
private:
<khaibáocácthànhphầnriêngtrongtừngđốitợng>
public:
public:
public:
public:
<khaibáocácthànhphầncôngcộngcủatừngđối
tợng>
};
<địnhnghiãcủacáchàmthànhphầnchađợcđịnh
nghĩabêntrongkhaibáolớp>

NgônngữC++
-43-
V
V
V
V
í
í
í
í
d
d
d

cout<<"Hamthanhphaninit\n";
x=
ox;
y=
oy;
/*
x,ylàcácthànhphầncủađốitợnggọihàmthành
phần
*/
}
voidpoint::move(intdx,intdy)
{
cout<<"Hamthanhphanmove\n";
x
+=
dx;
y
+=
dy;
}
voidpoint::display()
{
cout<<"Hamthanhphandisplay\n";
cout<<"Toado:"<<x<<""<<y<<"\n";
}
NgônngữC++
-44-
voidmain()
{
clrscr();

x
é
é
é
é
t
t
t
t
7.Cóthểkhaibáotrựctiếpcáchàmthànhphầnbêntrongkhaibáolớp.
Tuyvậyđiềuđóđôikhilàmmấtmỹquancủachơngtrìnhnguồn,do
vậyngờitathờngsửdụngcáchkhaibáocáchàmthànhphầnởbên
ngoàikhaibáolớp.Khiđótasửdụngcúpháp:
8.Gọihàmthànhphầncủalớptừmộtđốitợngchínhlàtruyềnthông
điệpchohàmthànhphầnđó.Cúphápnhsau:
<tênkiểugiátrịtrảlại><tênlớp>::<tênhàm>(<danhsáchthamsố>){
<nộidung>
}
<tênđốitợng>.<tênhàmthànhphần>(<danhsáchcác
thamsốnếucó>);
NgônngữC++
-45-
2.1.1
2.1.1
2.1.1
2.1.1
T
T
T
T

Dođóvùngnhớđợccấpphátchomộtbiếnkiểulớpsẽchotamột
khungcủađốitợngbaogồmdữliệulàcácthểhiệncụthểcủacácmôtảdữ
liệutrongkhaibáolớpcùngvớicácthôngđiệpgửitớicáchàmthànhphần.
Mỗiđốitợngsởhữumộttậpcácbiếntơngứngvớitênvàkiểucủa
cácthànhphầndữliệuđịnhnghĩatronglớp.Tagọichúnglàcácbiếnthể
hiệncủađốitợng.Tuynhiêntấtcảcácđốitợngcùngmộtlớpchungnhau
địnhnghĩacủacáchàmthànhphần.
Lớplàmộtkiểudữliệuvìvậycóthểkhaibáocontrỏhaythamchiếu
đếnmộtđốitợngthuộclớpvàbằngcáchấycóthểtruynhậpgiántiếpđến
đốitợng.Nhngchúýlàcontrỏvàthamchiếukhôngphảilàmộtthểhiện
củalớp.
2.1.2
2.1.2
2.1.2
2.1.2
C
C
C
C
á
á
á
á
c
c
c
c
th
th
th

li
li
li




u
u
u
u
Cúphápkhaibáocácthànhphầndữliệugiốngnhkhaibáobiến:
KhungDL
Phơng
thức
Dữliệucụthể1
Thamchiếuphơng
thức
Dữliệucụthể2
Thamchiếuphơng
thức
Lớp
Đối
tợng
Đối
tợng
Hình3.2Đốitợnglàmộtthể
hiệncủalớp
<tênkiểu><tênthànhphần>;
<tênlớp><tênđốitợng>;

),kiểutrờngbit,kiểuliệtkê(enum)haycáckiểudongờidùng
địnhnghĩa.Thậmchí,thànhphầndữliệucòncóthểlàmộtđốitợngthuộc
lớpđãđợckhaibáotrớcđó.Tuynhiênkhôngthểdùngtrựctiếpcáclớp
đểkhaibáokiểuthànhphầndữliệuthuộcvàobảnthânlớpđangđợcđịnh
nghĩa.Muốnvậy,trongkhaibáocủamộtlớpcóthểdùngcáccontrỏhoặc
thamchiếuđếncácđốitợngcủachínhlớpđó.
Trongkhaibáocủacácthànhphầndữliệu,cóthểsửdụngtừkhoá
static
static
static
static
nhngkhôngđợcsửdụngcáctừkhoáauto
auto
auto
auto
,register
register
register
register
,extern
extern
extern
extern
trongkhaibáocácthànhphầndữliệu.Cũngkhôngthểkhaibáovàkhởiđầu
giátrịchocácthànhphầnđó.
2.1.3
2.1.3
2.1.3
2.1.3
C

à
nh
nh
nh
nh
ph
ph
ph
ph




n
n
n
n
Hàmđợckhaibáotrongđịnhnghĩacủalớpđợcgọilàhàmthành
phầnhayphơngthứccủalớp(hàmthànhphầnlàthuậtngữcủaC++,còn
phơngthứclàthuậtngữtronglậptrìnhhớngđốitợngnóichung).Các
hàmthànhphầncóthểtruynhậpđếncácthànhphầndữliệuvàcáchàm
thànhphầnkháctronglớp.Nhtrênđãnói,C++chophéphàmthànhphần
truynhậptớicácthànhphầncủacácđốitợngcùnglớp,miễnlàchúngđợc
khaibáobêntrongđịnhnghĩahàm(nhlàmộtđốitợngcụcbộhaymột
thamsốhìnhthứccủahàmthànhphần).Phầntiếpsausẽcócácvídụminh
hoạchokhảnăngnày.
Trongchơngtrình
point.cpp
,
trongkhaibáocủalớppointcóchứa

3.2
3.2
3.2
3.2
/*point1.cpp
point1.cpp
point1.cpp
point1.cpp
*/
1
Hàmthànhphầnđịnhnghĩatrongkhaibáolớpđợcchơngtrìnhdịchhiểulà
hàminline,
inline,
inline,
inline,
nênkhôngđợcquáphứctạp.
NgônngữC++
-47-
#include<iostream.h>
#include<conio.h>
classpoint
{
/*khaibáocácthànhphầndữliệuprivate*/
private:
intx,y;
/*khaibáocáchàmthànhphầnpublic*/
public:
/*Địnhnghĩahàmthànhphầnbêntrongkhaibáolớp*/
voidinit(intox,intoy){
cout<<"Hamthanhphaninit\n";

clrscr();
NgônngữC++
-48-
point
p;
p.init(2,4);
/*gọihàmthànhphầntừđốitợng*/
p.display();
p.move(1,2);
p.display();
getch();
}
Hamthanhphaninit
Hamthanhphandisplay
Toado:24
Hamthanhphanmove
Hamthanhphandisplay
Toado:36
Khiđịnhnghĩahàmthànhphầnởngoàilớp,dòngtiêuđềcủahàmthành
phầnphảichứatêncủalớpcóhàmlàthànhviêntiếptheolàtoántửđịnh
phạmvi::.Đólàcáchđểphânbiệthàmthànhphầnvớicáchàmtựdo,
đồngthờicònchophéphailớpkhácnhaucóthểcócáchàmthànhphần
cùngtên.
Cóthểđặtđịnhnghĩahàmthànhphầntrongcùngtậptinkhaibáolớp
hoặctrongmộttậptinkhác.Vídụsauđâysauđâylàmộtcảibiênkháctừ
point.
cpp,
trongđótađặtriêngkhaibáolớppointtrongmộttệptiêuđề.
Tệptiêuđềsẽđợcthamchiếutớitrongtệpchơngtrình
point2.cpp

#ifndefpoint_h
#definepoint_h
#include<iostream.h>
NgônngữC++
-49-
classpoint
{
/*khaibáocácthànhphầndữliệuprivate*/
private:
intx,y;
/*khaibáocáchàmthànhphầnpublic*/
public:
/*Địnhnghĩahàmthànhphầnbêntrongkhaibáolớp*/
voidinit(intox,intoy);
voidmove(intdx,intdy);
voiddisplay();
};
#endif
Tệpchơngtrìnhnguồn
/*point2.cpp*/
/*point2.cpp*/
/*point2.cpp*/
/*point2.cpp*/
/*Tậptinchơngtrình,địnhnghĩavàsửdụngcáchàmthànhphầntronglớp
pointđợckhaibáotrongtậptintiêuđềpoint.h*/
#include

point.h

/*chènđịnhnghĩalớppointvàochơngtrình*/

}
voidmain()
{
clrscr();
point
p;
p.init(2,4);
/*gọihàmthànhphầntừđốitợng*/
p.display();
p.move(1,2);
p.display();
getch();
}
Hamthanhphaninit
Hamthanhphandisplay
Toado:24
Hamthanhphanmove
Hamthanhphandisplay
Toado:36
2.1.4
2.1.4
2.1.4
2.1.4
Tham
Tham
Tham
Tham
s
s
s

l
l
l




i
i
i
i
g
g
g
g




i
i
i
i
h
h
h
h
à
à
à

cógiátrịngầmđịnh.Lờigọihàmthànhphầnluôncómộtvàchỉmộttham
sốngầmđịnhlàđốitợngthựchiệnlờigọihàm.Nhthếcácbiếnx,ytrong
địnhnghĩacủacáchàmpoint::init(),point::display(),haypoint::move()
chínhlàcácbiếnthểhiệncủađốitợngdùnglàmthamsốngầmđịnhtrong
lờigọihàm.Dovậylờigọihàmthànhphần:
p.init(2,4)
sẽgán2chop.xcònp.ysẽcógiátrị4.
NgônngữC++
-51-
Tấtnhiên,theonguyêntắcđónggói,khônggántrịchocácthànhphần
dữliệucủađốitợngmộtcáchtrựctiếp.
p.x
=
2;
p.y
=
4;
Hơnnữa,khôngthểthựchiệnlờigọitớihàmthànhphầnnếukhôngchỉ
rõđốitợngđợcthamchiếu.Chỉthị:
init(5,2);
tronghàm
main
sẽcóthểgâylỗibiêndịchnếutrongchơngtrình
khôngcóhàmtựdovớitên
init
.
2.1.5
2.1.5
2.1.5
2.1.5

khaibáobiến:phạmvikhốilệnh,phạmvitệp,phạmvichơngtrìnhvà
phạmvihàmnguyênmẫu,trongđóthờngdùngnhấtlàphạmvitoàncục
(tệp,chơngtrình)vàphạmvicụcbộ(khốilệnh,hàm).Mụcđíchcủaphạm
vilàđểkiểmsoátviệctruyxuấtđếncácbiến/hằng/hàm.
Đểkiểmsoáttruynhậpđếncácthànhphần(dữliệu,hàm)củacáclớp,
C++đarakháiniệmphạmvilớp.Tấtcảcácthànhphầncủamộtlớpsẽ
đợccoilàthuộcphạmvilớp;trongđịnhnghĩahàmthànhphầncủalớpcó
thểthamchiếuđếnbấtkỳmộtthànhphầnnàokháccủacùnglớpđó.Tuân
theoýtởngđónggói,C++coitấtcảcácthànhphầncủamộtlớpcóliênhệ
vớinhau.Ngoàira,C++cònchophépmởrộngphạmvilớpđếncáclớpcon
cháu,bạnbèvàhọhàng(Xemthêmchơng5-Kếthừavàcácmụctiếpsau
đểhiểurõhơn).
2.1.6
2.1.6
2.1.6
2.1.6
T
T
T
T




kho
kho
kho
kho
á
á

c
c
c
c
t
t
t
t
í
í
í
í
nh
nh
nh
nh
truy
truy
truy
truy
xu
xu
xu
xu




t
t

public
public
làcáctừkhoáxácđịnhthuộctínhtruyxuất.Mọithànhphầnđợc
liệtkêtrongphầnpublic
public
public
public
đềucóthểtruyxuấttrongbấtkỳhàmnào.Những
NgônngữC++
-52-
thànhphầnđợcliệtkêtrongphầnprivate
private
private
private
chỉđợctruyxuấtbêntrong
phạmvilớp,bởichúngthuộcsởhữuriêngcủalớp,trongkhiđócácthành
phầnpublic
public
public
public
thuộcsởhữuchungcủamọithànhphầntrongchơngtrình.
Vớikhaibáolớppointtathấyrằngcácthànhphầnprivate
private
private
private
đợctính
từchỗnóxuấthiệnchođếntrớcnhãnpublic
public
public
public


3.4
3.4
3.4
3.4
/*tamgiac.cpp*/
/*tamgiac.cpp*/
/*tamgiac.cpp*/
/*tamgiac.cpp*/
#include<iostream.h>
#include<math.h>
#include<conio.h>
/*khaibáolớptamgiác*/
classtamgiac{
private:
floata,b,c;
/*độdàibacạnh*/
public:
voidnhap();
/*nhậpvàođộdàibacạnh*/
voidin();
/*inracácthôngtinliênquanđếntamgiác*/
private:
intloaitg();
/*chobiếtkiểucủatamgiác:1-d,2-vc,3-c,4-v,5-t*/
floatdientich();
/*tínhdiệntíchcủatamgiác*/
};
/*địnhnghĩahàmthànhphần*/
voidtamgiac::nhap()

{
case
1:
cout<<"Tamgiacdeu\n";break;
case
2:
cout<<"Tamgiacvuongcan\n";break;
case
3:
cout<<"Tamgiaccan\n";break;
case
4:
cout<<"Tamgiacvuong\n";break;
default:cout<<"Tamgiacthuong\n";break;
}
}
floattamgiac::dientich()
{
return(0.25*sqrt((a+b+c)*(a+b-c)*(a-b+c)*(-a+b+c)));
}
inttamgiac::loaitg()
{
if
(a==b||b==c||c==a)
if
(a==b
&&
b==c)
return
1;

Tamgiacdeu
Canha:3
Canhb:4
Canhc:5
Dodaibacanh:345
Dientichtamgiac:6
Tamgiacvuong
Cácthànhphầntrongmộtlớpcóthểđợcsắpxếpmộtcáchhếtsứctuỳ
ý.Dođócóthểsắpxếplạicáckhaibáohàmthànhphầnđểchocácthành
phầnprivate
private
private
private
ởtrên,còncácthànhphầnpublic
public
public
public
ởdớitrongkhaibáolớp.
Chẳnghạncóthểđaramộtkhaibáokháccholớptamgiactrong
tamgiac.cppnhsau:
classtamgiac{
private:
floata,b,c;
/*độdàibacạnh*/
intloaitg();
/*chobiếtkiểucủatamgiác:1-d,2-vc,3-c,4-v,5-t*/
floatdientich();
/*tínhdiệntíchcủatamgiác*/
public:
voidnhap();

intloaitg();
/*chobiếtkiểucủatamgiác:1-d,2-vc,3-c,4-v,5-t*/
floatdientich();
/*tínhdiệntíchcủatamgiác*/
public:
voidnhap();
/*nhậpvàođộdàibacạnh*/
voidin();
/*inracácthôngtinliênquanđếntamgiác*/
};
NgônngữC++
-57-
2.1.7
2.1.7
2.1.7
2.1.7
G
G
G
G




i
i
i
i
m
m

nh
nh
nh
nh
ph
ph
ph
ph




n
n
n
n
trong
trong
trong
trong
m
m
m
m




t
t





n
n
n
n
kh
kh
kh
kh
á
á
á
á
c
c
c
c
Khikhaibáolớp,cóthểgọihàmthànhphầntừmộthàmthànhphần
kháctrongcùnglớpđó.Khimuốngọimộthàmtựdotrùngtênvàdanhsách
thamsốtaphảisửdụngtoántửphạmvi
::

.Bạnđọccóthểkiểmnghiệm
điềunàybằngcáchđịnhnghĩamộthàmtựdotên
loaitg
vàgọinótrong
địnhnghĩacủahàm

đơngvớimộtcấutrúc,khôngcóphạmvilớp.C++cũngchophépkhai
báocáccấutrúcvớicáchàmthànhphần.Haikhaibáosaulàtơng
đơngnhau:
10.Ngoàipublic
public
public
public
vàprivate
private
private
private
,còncótừkhoáprotected
protected
protected
protected
(đợcbảovệ)
dùngđểchỉđịnhtrạngtháicủacácthànhphầntrongmộtlớp.
Trongphạmvicủalớphiệntạimộtthànhphầnprotected
protected
protected
protected
cótính
chấtgiốngnhthànhphầnprivate
private
private
private
.
2.2
2.2
2.2

a
a
a
c
c
c
c
á
á
á
á
c
c
c
c
h
h
h
h
à
à
à
à
m
m
m
m
th
th
th

nh
nh
nh
ngh
ngh
ngh
ngh
ĩ
ĩ
ĩ
ĩ
a
a
a
a
ch
ch
ch
ch




ng
ng
ng
ng
c
c
c

nh
nh
nh
ph
ph
ph
ph




n.
n.
n.
n.
Cáchàmthànhphầncóthểcótrùngtênnhngphảikhácnhauởkiểu
giátrịtrảvề,danhsáchkiểucácthamsố.Hàmthànhphầnđợcphépgọitới
cáchàmthànhphầnkhác,thậmchítrùngtên.Chơngtrình
point3.cpp
sau
đâylàmộtcảibiênmớicủa
point.cpp
:
V
V
V
V
í
í
í

};
NgônngữC++
-58-
#include<iostream.h>
#include<conio.h>
classpoint
{
intx,y;
public:
/*địnhnghĩachồngcáchàmthànhphầninitvàdisplay*/
voidinit();
voidinit(int);
voidinit(int,int);
voiddisplay();
voiddisplay(char*);
};
voidpoint::init()
{
x=y=0;
}
voidpoint::init(intabs)
{
x=abs;y=0;
}
voidpoint::int(intabs,intord)
{
x=abs;
y=ord;
}
voidpoint::display()

c;
c.init(3,12);
/*point::init(int,int)*/
c.display("Hello ");
getch();
}
Toado:00
pointb-Toado:50
Hello Toado:312
2.2.2
2.2.2
2.2.2
2.2.2
C
C
C
C
á
á
á
á
c
c
c
c
tham
tham
tham
tham
s

tr




ng
ng
ng
ng




m
m
m
m
đị
đị
đị
đị
nh
nh
nh
nh
Giốngnhcáchàmthôngthờng,lờigọihàmthànhphầncóthểsử
dụnggiátrịngầmđịnhchocácthamsố.Giátrịngầmđịnhnàysẽđợckhai
báotrongđịnhnghĩahàmthànhphầnhaytrongkhaibáo(trongkhaibáolớp)
củanó.Chơngtrình
point4.cpp

classpoint
{
intx,y;
Ng«nng÷C++
-60-
public:
voidinit(int=0,int=0);
voiddisplay(char
*=””);
};
voidpoint::int(intabs,intord)
{
x=abs;
y=ord;
}
voidpoint::display(char*mesg)
{
cout<<mesg;
display();
}
voidmain()
{
clrscr();
point
a;
a.init();
/*a.init(0,0)*/
a.display();
/*a.display(
“”



d
d
d
d




ng
ng
ng
ng
đố
đố
đố
đố
i
i
i
i
t
t
t
t







a
a
a
a
h
h
h
h
à
à
à
à
m
m
m
m
th
th
th
th
à
à
à
à
nh
nh
nh
nh

p
p
p
p
đế
đế
đế
đế
n
n
n
n
c
c
c
c
á
á
á
á
c
c
c
c
th
th
th
th
à
à

i
i
i
i
t
t
t
t




ng
ng
ng
ng
Hàmthànhphầncóquyềntruynhậpđếncácthànhphầnprivate
private
private
private
của
đốitợnggọinó.Xemđịnhnghĩahàmthànhphầnpoint::init():
voidpoint::int(intabs,intord)
{
x=abs;
y=ord;
}
2.2.3.2
2.2.3.2
2.2.3.2

á
á
á
c
c
c
c
th
th
th
th
à
à
à
à
nh
nh
nh
nh
ph
ph
ph
ph




n
n
n




l
l
l
l
à
à
à
à
đố
đố
đố
đố
i
i
i
i
t
t
t
t




ng
ng
ng

th
th
th
à
à
à
à
nh
nh
nh
nh
ph
ph
ph
ph




n.
n.
n.
n.
Hàmthànhphầncóquyềntruynhậpđếntấtcảcácthànhphầnprivate
private
private
private
củacácđốitợng,thamchiếuđốitợnghaycontrỏđốitợngcócùngkiểu
lớpkhiđợcdùnglàthamsốhìnhthứccủanó.
classpoint

ù
ù
ù
ù
ng
ng
ng
ng
đố
đố
đố
đố
i
i
i
i
t
t
t
t




ng
ng
ng
ng
nh
nh

v
v
v
v




c
c
c
c




a
a
a
a
h
h
h
h
à
à
à
à
m
m

à
à
à
à
m
m
m
m
trong
trong
trong
trong
c
c
c
c
ù
ù
ù
ù
ng
ng
ng
ng
l
l
l
l



Con
Con
tr
tr
tr
tr




this
this
this
this
Từkhoáthis
this
this
this
trongđịnhnghĩacủacáchàmthànhphầnlớpdùngđểxác
địnhđịachỉcủađốitợngdùnglàmthamsốngầmđịnhchohàmthànhphần.
Nóicáchkhác,contrỏthis
this
this
this
thamchiếuđếnđốitợngđanggọihàmthành
phần.Nhvậy,cóthểtruynhậpđếncácthànhphầncủađốitợnggọihàm
thànhphầngiántiếpthôngquathis
this
this
this

é
é
é
p
p
p
p
g
g
g
g
á
á
á
á
n
n
n
n
c
c
c
c
á
á
á
á
c
c
c

sangđốitợng
b
tơngứngtừngđôimột(khôngkểđólàcác
thànhphầnpublic
public
public
public
hayprivate
private
private
private
).
2
y
5
b
a
x
5
2
x
y
NgônngữC++
-64-
Ch
Ch
Ch
Ch
ú
ú

H
à
à
à
à
m
m
m
m
thi
thi
thi
thi
ế
ế
ế
ế
t
t
t
t
l
l
l
l




p

à
m
m
m
m
hu
hu
hu
hu




b
b
b
b




(
(
(
(
destructor
destructor
destructor
destructor
)

t
l
l
l
l




p
p
p
p
4.1.1
4.1.1
4.1.1
4.1.1
Ch
Ch
Ch
Ch




c
c
c
c
n

à
m
m
m
m
thi
thi
thi
thi
ế
ế
ế
ế
t
t
t
t
l
l
l
l




p
p
p
p
Hàmthiếtlậplàmộthàmthànhphầnđặcbiệtkhôngthểthiếuđợc


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status