Professional Documents
Culture Documents
Thamchieu
Thamchieu
Tham chiu l g? Gii hn ca tham chiu Truyn tham chiu cho hm Hm tr v nhiu gi tr Hm to bn sao Con tr v tham chiu Tham chiu con tr
THAM CHIU L G ?
L mt b danh ca bin khc Khi to ra mt tham chiu, gn n ln mt i tng khc th tham chiu hot ng nh chnh i tng gn n n C php:
Kiu &TnThamChiu = MtiTngTnTi;
V d:
Sinhvien sv_lop_T14A; Sinhvien &sv1 = sv_lop_T14A;
THAM CHIU L G ?
a ch ca tham chiu: l a ch ca i tng m n tham chiu n. Tng t nh trong thc t khi mt b danh c gn vi mt ngi no c th. Ch : khng th gn li thm mt ln na tn ca tham chiu cho mt i tng khc.
C th thc hin tham chiu vi i tng no? phi tham chiu n mt i tng c th!
V d cc khai bo sau l sai 1) int &sn=int; 2) Sinhvien &sv1=Sinhvien; Cc khai bo ng 1) int sn=20; int &i=sn; 2) Sinhvien sv_lop_T14A;
Sinhvien &sv1 = sv_lop_T14A;
Gii quyt bng truyn tham chiu n hm: i tng thc s c truyn n hm C th sa i c gi tr ca i tng
void Doicho(int &x, int &y) { int tam; tam=x; x=y; y=tam;}
Khi goi hm, bin c truyn trc tip, 2 gi tr x v y thc s c i ch cho nhau
Doicho(x,y);
HM TR V NHIU GI TR(1)
Hm ch c th tr v mt gi tr. Chng ta s s dng k thut truyn tham chiu thay i cc i tng ngoi ngay bn trong hm, v nh vy hm c th tr v nhiu gi tr S dng con tr S dng tham chiu
HM TR V NHIU GI TR(3)
S dng con tr
void HinhTron(int r, int *dientich, int *chuvi) { *dientich = 3.14 * r * r; *chuvi = 2 * 3.14 * r; }
HM TR V NHIU GI TR(4)
Hm to bn sao:
Sinhvien::Sinhvien() { Cout<<Ham tao\n; } Sinhvien::Sinhvien(Sinhvien&) { Cout<<Ham tao ban sao\n; }
HM TO BN SAO (2)
i s dng tham tr hoc khi hm tr v gi tr th mt bn sao ca i s s c to ra. Nu i s l i tng ca lp th hm to bn sao s c gi. Gi s c 2 hm
Sinhvien Ham1(Sinhvien sv); Sinhvien Ham2(Sinhvien *sv);
Khi hm 1 c gi, phi truyn i s dng tham tr nn hm to bn sao c gi Khi hm 2 c gi, truyn i s dng tham chiu, hm to bn sao khng c gi
Qua cc v d phn tch, vic s dng con tr v tham chiu cho ta kt qu ging nhau Nn s dng tham chiu thay cho con tr nu c th Nu ta lm vic vi nhiu i tng, ch c cch duy nht l s dng con tr Hn na tham chiu khng th nhn gi tr null
Tham chiu con tr: c dng khi mun thay i gi tr a ch trong con tr.
V d: void Doicho(Sinhvien *&sv1, Sinhvien *&sv2) { SinhVien *temp; temp = sv1; sv1 = sv2; sv2 = temp; }
Bi tp
1.Xy dng lp hnh ch nht vi cc thuc tnh sau: Xtt,Ytt, Xpd, Ypd- l ta tri-trn, phi-di ca mt hnh ch nht. Vi cc phng thc sau: Hm to, Hm hy, Phng thc t gi tr cho cc thuc tnh, v phng thc ly gi tr ca cc thuc tnh(dng tham chiu v con tr). Vit chng trnh minh ha. 2. Vit chng trnh xy dng lp im trong khng gian 2 chiu vi cc thuc tnh sau: honh x, tung y l cc s thc. Vi cc phng thc sau: hm to, hm hy, phng thc t gi tr cho x v y, phng thc ly gi tr x, phng thc ly gi tr y v phng thc ly c 2 gi tr x, y. Vit chng trnh minh ha.