Ngày tải lên :
05/07/2014, 19:20
... 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
chứa
địnhnghĩacáchàmthànhphầncủalớp
point
.
V
V
V
V
í
í
í
í
d
d
d
d
ụ
ụ
ụ
ụ
3.3
3.3
3.3
3.3
Tệptiêuđề
/*point.h*/
/*point.h*/
/*point.h*/
/*point.h*/
/*đâylàtậptintiêuđềkhaibáolớppointđợcgộpvàotệppoint2.cpp*/
#ifndefpoint_h
#definepoint_h
#include<iostream.h>
... NgônngữC++
-77-
tợngcụcbộ
x
tronghàm.Vìlàđốitợngcụcbộbêntronghàm
fct()
nên
x
bịxoákhỏivùngbộnhớngănxếp(dùngđểcấpphátchocácbiếncụcbộ
khigọihàm)khikếtthúcthựchiệnhàm.Dođó,mỗilờigọitới
fct()
sinh
ramộtcặpdòngthôngbáo,tơngứngvớilờigọihàmthiếtlập,hàmhuỷ
bỏ(cácdòngthôngbáo2,3,4,5tơngứng).Cuốicùng,khihàm
main()
kết
thúcthựchiện,đốitợng
a
đợcgiảiphóng,hàmhuỷbỏđốivớiasẽchora
dòngthôngbáothứ6.
4.2.2
4.2.2
4.2.2
4.2.2
M
M
M
M
ộ
ộ
ộ
ộ
t
t
t
t
s
s
s
s
ố
ố
ố
ố
qui
qui
qui
qui
đị
đị
đị
đị
nh
nh
nh
nh
đố
đố
đố
đố
i
i
i
i
v
v
v
v
ớ
ớ
ớ
ớ
i
i
i
i
h
h
h
h
à
à
à
à
m
m
m
m
hu
hu
hu
hu
ỷ
ỷ
ỷ
ỷ
b
b
b
b
ỏ
ỏ
ỏ
ỏ
17.Têncủahàmhuỷbỏbắtđầubằngdấu~theosaulàtêncủalớptơng
ứng.Chẳnghạnlớptestthìsẽhàmhuỷbỏtênlà~test.
18.Hàmhuỷbỏphảicóthuộctínhpublic
public
public
public
19.Nóichunghàmhuỷbỏkhôngcóthamsố,mỗilớpchỉcómộthàm
huỷbỏ(Trongkhiđócóthểcónhiềucáchàmthiếtlập).
20.Khikhôngđịnhnghĩahàmhuỷbỏ,chơngtrìnhdịchtựđộngsản
sinhmộthàmnhvậy(hàmhuỷbỏngầmđịnh),hàmnàykhông
làmgìngoàiviệclấpchỗtrống.Đốivớicáclớpkhôngcókhai
báocácthànhphầnbộnhớđộng,cóthểdùnghàmhuỷbỏngầm
định.Tráilại,phảikhaibáohàmhuỷbỏtờngminhđểđảmbảo
quảnlýtốtviệcgiảiphóngbộnhớđộngdocácđốitợngchiếmgiữ
chiếmgiữkhichúnghếtthờigianlàmviệc.
21.Giốngnhhàmthiếtlập,hàmhuỷbỏkhôngcógiátrịtrảvề.
... NgônngữC++
-83-
Ngợclại,hàmthiếtlậpthựchiệnđồngthờihainhiệmvụ:tạođốitợng
vàsaochépnộidungtừmộtđốitợngđÃcósangđốitợngmớitạorađó.
Ngoàitìnhhuốngtrênđây,còncóhaitrờnghợpcầndùnghàmthiết
lậpsaochép:truyềnđốitợngchohàmbằngthamtrịhoặchàmtrảvềmột
đốitợngnhằmtạomộtđốitợnggiốnghệtmộtđốitợngcùnglớpđÃcó
trớcđó.Trongphầnsauchúngtasẽcóvídụminhhoạchocáctrìnhbày
này.
4.4.2
4.4.2
4.4.2
4.4.2
H
H
H
H
à
à
à
à
m
m
m
m
thi
thi
thi
thi
ế
ế
ế
ế
t
t
t
t
l
l
l
l
ậ
ậ
ậ
ậ
p
p
p
p
sao
sao
sao
sao
ch
ch
ch
ch
é
é
é
é
p
p
p
p
ng
ng
ng
ng
ầ
ầ
ầ
ầ
m
m
m
m
đị
đị
đị
đị
nh
nh
nh
nh
Giốngnhhàmthiếtlậpngầmđịnh(hàmthiếtlậpkhôngthamsố),nếu
khôngđợcmôtảtờngminh,sẽcómộthàmthiếtlậpsaochépngầmđịnh
dochơngtrìnhdịchcungcấpnhằmđảmbảotínhđúngđắncủachơng
trìnhtrongcáctìnhhuốngcầnđếnhàmthiếtlập.Nhvậy,trongkhaibáo
củamộtlớpcóítnhấthaihàmthiếtlậpngầmđịnh:hàmthiếtlậpngầmđịnh
vàhàmthiếtlậpsaochépngầmđịnh.
Dolàmộthàmđợctạoratựđộngnênhàmthiếtlậpsaochépngầm
địnhcũngchỉthựchiệnnhữngthaotáctốithiểu(ngầmđịnh):tạogiátrị
củacácthuộctínhtrongđốitợngmớibằngcácgiátrịcủacácthuộctính
tơngứngtrongđốitợngcũ.Bạnđọccóthểxemlạiphần3củachơngđể
hiểurõhơn.Nóichung,vớicáclớpkhôngkhaibáocácthànhphầndữliệu
độngthìchỉcầndùnghàmthiếtlậpsaochépngầmđịnhlàđủ.Vấnđềsẽ
khácđikhicầnđếncácthaotácquảnlýbộnhớđộngtrongcácđốitợng.
Trongtrờnghợpnàykhôngđợcdùnghàmthiếtlậpsaochépngầmđịnh
màphảigọihàmthiếtlậpsaochéptờngminh.
4.4.3
4.4.3
4.4.3
4.4.3
Khai
Khai
Khai
Khai
b
b
b
b
á
á
á
á
o
o
o
o
v
v
v
v
à
à
à
à
đị
đị
đị
đị
nh
nh
nh
nh
ngh
ngh
ngh
ngh
ĩ
ĩ
ĩ
ĩ
a
a
a
a
h
h
h
h
à
à
à
à
m
m
m
m
thi
thi
thi
thi
ế
ế
ế
ế
t
t
t
t
l
l
l
l
ậ
ậ
ậ
ậ
p
p
p
p
sao
sao
sao
sao
ch
ch
ch
ch
é
é
é
é
p
p
p
p
t
t
t
t
ờ
ờ
ờ
ờ
ng
ng
ng
ng
minh
minh
minh
minh
D
D
D
D
ạ
ạ
ạ
ạ
ng
ng
ng
ng
c
c
c
c
ủ
ủ
ủ
ủ
a
a
a
a
h
h
h
h
à
à
à
à
m
m
m
m
thi
thi
thi
thi
ế
ế
ế
ế
t
t
t
t
l
l
l
l
ậ
ậ
ậ
ậ
p
p
p
p
sao
sao
sao
sao
ch
ch
ch
ch
é
é
é
é
p
p
p
p
Xétcácđốitợngthuộclớppoint.Câulệnh
pointq=p;
sẽgọiđếnhàmthiếtlậpsaochép.
Nhnhậnxéttrongphầntrêntacóthểviếttheocáchkhácnhsau:
pointq(p);
Từcáchviếttrêncóthểchorằngdạngcủahàmthiếtlậpsaochépcho
lớppointcóthểlà:
...