際際滷

際際滷Share a Scribd company logo
L畉p tr狸nh h動畛ng 畛i t動畛ng




 H Vn Sang
 B畛 m担n: Tin h畛c TC  KT
 Khoa: H畛 Th畛ng Th担ng Tin Kinh t畉 - H畛c Vi畛n Ti
 Ch鱈nh
 Tel: 0982.165.568
 Email: sanghv@hvtc.edu.vn
 Website: http://www.hvtc.edu.vn/sanghv
03/05/12 07:09                                     1
CH働NG III




03/05/12 07:09   2
4. M畉ng v con tr畛 c畛a 畛i t動畛ng

Khai b叩o

  <t棚n_l畛p> <t棚n_m畉ng>[spt];


  V鱈 d畛: SV sinhvien[50]; PS a[8];

  <t棚n_l畛p> *<t棚n_con_tr畛>;

   V鱈 d畛: SV *p = sinhvien;

                                     3/20
5. Hm b畉n v l畛p b畉n

Kh叩i ni畛m hm b畉n:
   Hm b畉n c畛a m畛t l畛p l hm kh担ng ph畉i l
    thnh ph畉n c畛a l畛p
   Nh動ng c坦 kh畉 nng truy xu畉t 畉n m畛i thnh
  ph畉n c畛a 畛i t動畛ng
C炭 ph叩p:
  friend <ki畛u tr畉 v畛> <t棚n hm>(tham s畛);

  Sau 坦 畛nh ngh挑a hm 畛 ngoi l畛p nh動 c叩c hm
  t畛 do kh叩c                                      4/20
5. Hm b畉n v l畛p b畉n (ti畉p)

V鱈 d畛:
   X但y d畛ng l畛p PS v畛i ph辿p to叩n: +, -, to叩n t畛
    nh畉p (>>), to叩n t畛 xu畉t (<<)

   To叩n t畛 >>, << 達 動畛c x但y d畛ng v畛i c叩c ki畛u
   d畛 li畛u chu畉n nh動 int, char, float 
   V畛i c叩c ki畛u d畛 li畛u m畛i ta ph畉i x但y d畛ng l畉i:

   istream& operator>>(istream& is, PS &x);
  Tr畉 v畛 b畛 nh畛          Ph畉i thay 畛i     Gi叩 tr畛 c坦 th畛   5/20
       畛m                畛 ph湛 h畛p         thay 畛i
5. Hm b畉n v l畛p b畉n (ti畉p)

Nh畉n x辿t

   Hm b畉n kh担ng ph畉i l hm thnh vi棚n n棚n
    kh担ng b畛 畉nh h動畛ng c畛a t畛 kho叩 truy xu畉t
   Kh担ng h畉n ch畉 s畛 l動畛ng hm b畉n

   Hm b畉n c畛a m畛t l畛p c坦 th畛 l hm t畛 do

   Hm b畉n c畛a m畛t l畛p c坦 th畛 l hm thnh ph畉n
  c畛a m畛t l畛p kh叩c                             6/20
5. Hm b畉n v l畛p b畉n (ti畉p)

Kh叩i ni畛m l畛p b畉n:
    L畛p A l l畛p b畉n c畛a l畛p B n畉u trong B c坦
     ch畛a khai b叩o:
   friend class A;
V畉y:
  N畉u A l l畛p b畉n c畛a B th狸 m畛i hm thnh ph畉n
  c畛a A s畉 tr畛 thnh hm b畉n c畛a B


                                                  7/20
6. Thnh ph畉n t挑nh

a. D畛 li畛u t挑nh
   Kh叩i ni畛m:

   L thnh ph畉n d畛 li畛u c畛a l畛p nh動ng kh担ng g畉n
   c畛 th畛 v畛i 畛i t動畛ng no

  D湛ng chung cho ton b畛 l畛p

  C叩c 畛i t動畛ng c畛a l畛p 畛u d湛ng chung thnh
  ph畉n t挑nh ny
                                                   8/20
6. Thnh ph畉n t挑nh

a. D畛 li畛u t挑nh
   Khai b叩o:

   static <ki畛u d畛 li畛u> <t棚n thnh ph畉n>;
  V鱈 d畛:
  class PS{ int ts, ms;
  static int count;
  public:
  PS(int m=0, int n=1){ ts=t; ms=m; count++;}
  };

                                                9/20
6. Thnh ph畉n t挑nh

a. D畛 li畛u t挑nh
   Truy xu畉t:

  Theo 畛i t動畛ng (c叩ch th担ng th動畛ng)
  V鱈 d畛:
   PS a;
   a.count=0;
  Theo l畛p
  V鱈 d畛:
  PS::count=0;
                                        10/20
6. Thnh ph畉n t挑nh

a. D畛 li畛u t挑nh
   Ch炭 箪:

    T畛n t畉i ngay khi ch動a c坦 畛i t動畛ng no

   Ph畉i 動畛c kh畛i t畉o tr動畛c khi 畛i t動畛ng ph叩t sinh

   Ph畉i kh畛i t畉o ngoi m畛i hm theo c炭 ph叩p:
  <ki畛u dl> <t棚n l畛p>::<t棚n thnh ph畉n dl> = <gi叩 tr畛>;

   V鱈 d畛: int PS::count=0;
                                                          11/20
V鱈 d畛:

 X但y d畛ng l畛p H坦a 董n c坦 m畛t thnh ph畉n d畛 li畛u
  t挑nh 畛 ki畛m so叩t s畛 畛i t動畛ng H 動畛c c畉p ph叩t.




                                               12/20
6. Thnh ph畉n t挑nh

b. Ph動董ng th畛c t挑nh
   Kh叩i ni畛m:

    l hm thnh ph畉n c畛a l畛p nh動ng kh担ng g畉n
   v畛i 畛i t動畛ng c畛 th畛 no
   D湛ng 畛 thao t叩c chung cho l畛p

   Trong th但n hm kh担ng c坦 畛i t動畛ng 畉n
  static <ki畛u dl tr畉 v畛> <t棚n hm>(tham s畛);

   V鱈 d畛: x但y d畛ng l畛p SV g畛m pt nh畉p, in 1 sinh
   vi棚n. Nh畉p, in danh s叩ch sinh vi棚n.             13/20
7. Thnh ph畉n h畉ng

a. D畛 li畛u h畉ng
   Kh叩i ni畛m:
    l thnh ph畉n d畛 li畛u c畛a l畛p nh動ng kh担ng
   thay 畛i gi叩 tr畛 trong qu叩 tr狸nh t畛n t畉i
   V鱈 d畛: V畛i l畛p nh但n s畛 th狸 s畛 CMT l tp h畉ng
   Khai b叩o:
  const <ki畛u dl> <t棚n thnh ph畉n>;
   Thnh ph畉n h畉ng kh担ng th畛 thay 畛i sau khi 畛i
   t動畛ng 動畛c h狸nh thnh
                                                  14/20
7. Thnh ph畉n h畉ng

a. D畛 li畛u h畉ng
   X叩c 畛nh gi叩 tr畛:

    畛 hm kh畛i t畉o
   V鱈 d畛: NS(int k=0):scmt(k){}
   C炭 ph叩p
  <t棚n l畛p>([ds tham s畛]):<tp h畉ng 1>(畛i s畛)
                           ,<tp h畉ng 2>(畛i s畛)
                           .
  {
  //th但n hm kh畛i t畉o
                                                  15/20
  }
7. Thnh ph畉n h畉ng

b. Ph動董ng th畛c h畉ng
  Kh叩i ni畛m:
   l hm thnh ph畉n c畛a l畛p nh動ng kh担ng c坦
  kh畉 nng thay 畛i thnh ph畉n dl trong 畛i t動畛ng
  V鱈 d畛: V畛i l畛p PS th狸 ph動董ng th畛c in() l h畉ng
  Khai b叩o:
  <ki畛u dl tr畉 v畛> <t棚n hm>(tham s畛) const ;
  畛nh ngh挑a:
 <ki畛u dl tr畉 v畛> <t棚n l畛p>::<t棚n hm>(tham s畛) const
 { //th但n hm }                                         16/20
8. Thnh ph畉n 畛i t動畛ng

Kh叩i ni畛m:
   l thnh ph畉n d畛 li畛u c畛a l畛p c坦 ki畛u l m畛t
  l畛p kh叩c

Khai b叩o:
  <t棚n l畛p> <t棚n thnh ph畉n d畛 li畛u>


 V鱈 d畛: thnh ph畉n ns c畛a l畛p SV l 畛i t動畛ng l畛p
 date

                                                    17/20
Bi t畉p (week 5)

   X但y d畛ng c叩c to叩n t畛 nh畉p >>, xu畉t << c畛a c叩c
    bi t畉p trong tu畉n 4
   N畉p ch畛ng c叩c to叩n t畛 ==, !=, >, <, >=, <= c畛a
    c叩c bi t畉p trong tu畉n 4




                                                18/20
Qui c叩ch n畛p bi

G畛i t畛i 畛a ch畛: sanghv@gmail.com
CC: sanghv@hvtc.edu.vn
Ti棚u 畛:
[L畛p][BT3][Stt][H畛 v t棚n]
V鱈 d畛:
[K43/41.01][BT3][14][L棚 hong V滴]
H畉n n畛p: 23h59 ngy 29/01/2008


                                    19/20

More Related Content

Chapter 3 (cont)

  • 1. L畉p tr狸nh h動畛ng 畛i t動畛ng H Vn Sang B畛 m担n: Tin h畛c TC KT Khoa: H畛 Th畛ng Th担ng Tin Kinh t畉 - H畛c Vi畛n Ti Ch鱈nh Tel: 0982.165.568 Email: sanghv@hvtc.edu.vn Website: http://www.hvtc.edu.vn/sanghv 03/05/12 07:09 1
  • 3. 4. M畉ng v con tr畛 c畛a 畛i t動畛ng Khai b叩o <t棚n_l畛p> <t棚n_m畉ng>[spt]; V鱈 d畛: SV sinhvien[50]; PS a[8]; <t棚n_l畛p> *<t棚n_con_tr畛>; V鱈 d畛: SV *p = sinhvien; 3/20
  • 4. 5. Hm b畉n v l畛p b畉n Kh叩i ni畛m hm b畉n: Hm b畉n c畛a m畛t l畛p l hm kh担ng ph畉i l thnh ph畉n c畛a l畛p Nh動ng c坦 kh畉 nng truy xu畉t 畉n m畛i thnh ph畉n c畛a 畛i t動畛ng C炭 ph叩p: friend <ki畛u tr畉 v畛> <t棚n hm>(tham s畛); Sau 坦 畛nh ngh挑a hm 畛 ngoi l畛p nh動 c叩c hm t畛 do kh叩c 4/20
  • 5. 5. Hm b畉n v l畛p b畉n (ti畉p) V鱈 d畛: X但y d畛ng l畛p PS v畛i ph辿p to叩n: +, -, to叩n t畛 nh畉p (>>), to叩n t畛 xu畉t (<<) To叩n t畛 >>, << 達 動畛c x但y d畛ng v畛i c叩c ki畛u d畛 li畛u chu畉n nh動 int, char, float V畛i c叩c ki畛u d畛 li畛u m畛i ta ph畉i x但y d畛ng l畉i: istream& operator>>(istream& is, PS &x); Tr畉 v畛 b畛 nh畛 Ph畉i thay 畛i Gi叩 tr畛 c坦 th畛 5/20 畛m 畛 ph湛 h畛p thay 畛i
  • 6. 5. Hm b畉n v l畛p b畉n (ti畉p) Nh畉n x辿t Hm b畉n kh担ng ph畉i l hm thnh vi棚n n棚n kh担ng b畛 畉nh h動畛ng c畛a t畛 kho叩 truy xu畉t Kh担ng h畉n ch畉 s畛 l動畛ng hm b畉n Hm b畉n c畛a m畛t l畛p c坦 th畛 l hm t畛 do Hm b畉n c畛a m畛t l畛p c坦 th畛 l hm thnh ph畉n c畛a m畛t l畛p kh叩c 6/20
  • 7. 5. Hm b畉n v l畛p b畉n (ti畉p) Kh叩i ni畛m l畛p b畉n: L畛p A l l畛p b畉n c畛a l畛p B n畉u trong B c坦 ch畛a khai b叩o: friend class A; V畉y: N畉u A l l畛p b畉n c畛a B th狸 m畛i hm thnh ph畉n c畛a A s畉 tr畛 thnh hm b畉n c畛a B 7/20
  • 8. 6. Thnh ph畉n t挑nh a. D畛 li畛u t挑nh Kh叩i ni畛m: L thnh ph畉n d畛 li畛u c畛a l畛p nh動ng kh担ng g畉n c畛 th畛 v畛i 畛i t動畛ng no D湛ng chung cho ton b畛 l畛p C叩c 畛i t動畛ng c畛a l畛p 畛u d湛ng chung thnh ph畉n t挑nh ny 8/20
  • 9. 6. Thnh ph畉n t挑nh a. D畛 li畛u t挑nh Khai b叩o: static <ki畛u d畛 li畛u> <t棚n thnh ph畉n>; V鱈 d畛: class PS{ int ts, ms; static int count; public: PS(int m=0, int n=1){ ts=t; ms=m; count++;} }; 9/20
  • 10. 6. Thnh ph畉n t挑nh a. D畛 li畛u t挑nh Truy xu畉t: Theo 畛i t動畛ng (c叩ch th担ng th動畛ng) V鱈 d畛: PS a; a.count=0; Theo l畛p V鱈 d畛: PS::count=0; 10/20
  • 11. 6. Thnh ph畉n t挑nh a. D畛 li畛u t挑nh Ch炭 箪: T畛n t畉i ngay khi ch動a c坦 畛i t動畛ng no Ph畉i 動畛c kh畛i t畉o tr動畛c khi 畛i t動畛ng ph叩t sinh Ph畉i kh畛i t畉o ngoi m畛i hm theo c炭 ph叩p: <ki畛u dl> <t棚n l畛p>::<t棚n thnh ph畉n dl> = <gi叩 tr畛>; V鱈 d畛: int PS::count=0; 11/20
  • 12. V鱈 d畛: X但y d畛ng l畛p H坦a 董n c坦 m畛t thnh ph畉n d畛 li畛u t挑nh 畛 ki畛m so叩t s畛 畛i t動畛ng H 動畛c c畉p ph叩t. 12/20
  • 13. 6. Thnh ph畉n t挑nh b. Ph動董ng th畛c t挑nh Kh叩i ni畛m: l hm thnh ph畉n c畛a l畛p nh動ng kh担ng g畉n v畛i 畛i t動畛ng c畛 th畛 no D湛ng 畛 thao t叩c chung cho l畛p Trong th但n hm kh担ng c坦 畛i t動畛ng 畉n static <ki畛u dl tr畉 v畛> <t棚n hm>(tham s畛); V鱈 d畛: x但y d畛ng l畛p SV g畛m pt nh畉p, in 1 sinh vi棚n. Nh畉p, in danh s叩ch sinh vi棚n. 13/20
  • 14. 7. Thnh ph畉n h畉ng a. D畛 li畛u h畉ng Kh叩i ni畛m: l thnh ph畉n d畛 li畛u c畛a l畛p nh動ng kh担ng thay 畛i gi叩 tr畛 trong qu叩 tr狸nh t畛n t畉i V鱈 d畛: V畛i l畛p nh但n s畛 th狸 s畛 CMT l tp h畉ng Khai b叩o: const <ki畛u dl> <t棚n thnh ph畉n>; Thnh ph畉n h畉ng kh担ng th畛 thay 畛i sau khi 畛i t動畛ng 動畛c h狸nh thnh 14/20
  • 15. 7. Thnh ph畉n h畉ng a. D畛 li畛u h畉ng X叩c 畛nh gi叩 tr畛: 畛 hm kh畛i t畉o V鱈 d畛: NS(int k=0):scmt(k){} C炭 ph叩p <t棚n l畛p>([ds tham s畛]):<tp h畉ng 1>(畛i s畛) ,<tp h畉ng 2>(畛i s畛) . { //th但n hm kh畛i t畉o 15/20 }
  • 16. 7. Thnh ph畉n h畉ng b. Ph動董ng th畛c h畉ng Kh叩i ni畛m: l hm thnh ph畉n c畛a l畛p nh動ng kh担ng c坦 kh畉 nng thay 畛i thnh ph畉n dl trong 畛i t動畛ng V鱈 d畛: V畛i l畛p PS th狸 ph動董ng th畛c in() l h畉ng Khai b叩o: <ki畛u dl tr畉 v畛> <t棚n hm>(tham s畛) const ; 畛nh ngh挑a: <ki畛u dl tr畉 v畛> <t棚n l畛p>::<t棚n hm>(tham s畛) const { //th但n hm } 16/20
  • 17. 8. Thnh ph畉n 畛i t動畛ng Kh叩i ni畛m: l thnh ph畉n d畛 li畛u c畛a l畛p c坦 ki畛u l m畛t l畛p kh叩c Khai b叩o: <t棚n l畛p> <t棚n thnh ph畉n d畛 li畛u> V鱈 d畛: thnh ph畉n ns c畛a l畛p SV l 畛i t動畛ng l畛p date 17/20
  • 18. Bi t畉p (week 5) X但y d畛ng c叩c to叩n t畛 nh畉p >>, xu畉t << c畛a c叩c bi t畉p trong tu畉n 4 N畉p ch畛ng c叩c to叩n t畛 ==, !=, >, <, >=, <= c畛a c叩c bi t畉p trong tu畉n 4 18/20
  • 19. Qui c叩ch n畛p bi G畛i t畛i 畛a ch畛: sanghv@gmail.com CC: sanghv@hvtc.edu.vn Ti棚u 畛: [L畛p][BT3][Stt][H畛 v t棚n] V鱈 d畛: [K43/41.01][BT3][14][L棚 hong V滴] H畉n n畛p: 23h59 ngy 29/01/2008 19/20