!" #$%%& !'' !''((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((() *+,-((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((. !"#$ % ! &'(#)*&+ !"#$ , "# $%& '()"& *$+,-)./0, 12345,6678 $-9:%;<,<= !$-;3>><= -"."/&01 !"#$ 2 28?,-,@3:,@"$A($* BC>,@"$A($* 34- !"#$ 2 /!0123(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((4. 5(64- 2% -"/&)473! 2% (DE> FG/-,8,H)7),,,H9,! &8'01 29 I,9JK)L>,@IMMN IO-,,7P& 'QR>S/& *I,R:9C,& 1T,U)<>& $VW>)XYYZ !A>+3: N[D>\>D #$V<])7<<<' 3:1&;< => :>,: $3T>,>R^>,:! '[DJ)T,@>>,:N 3:"1?+ =, (K6,,>;_,)<7=# (K6,,V;`<)<7=' ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()5 )*&"#$3@! A> @".&'! A% QR' $W'N B&3!3@<C@3D! A, .W>)'# (T9C3,:,,)4*& 'IH* 3@&<C3@@&*7 A 3;3@<EFG"#<$ > A>:aI`2F$bcI$`b*1 A>dRHaefF$bcI$`b*! 'A>:,g;,3,,=*N 3"#<$H3@@&@3D+( >I (^1& I,>)4,1 3!@@3D01!) >2 3@JK01! > <L1+"M4*4 > $\78 E1* I,>\E11 N@&3@!FB >% hA>G7RW,@>+1 hA>\,@RW,@9,1! h'$i,J,,>,@RW,@9,1N 6789(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((5& ($3O@&+6 >, I,345,,/RJ1# 28W& ;$(6PQ@&+6 %2 "5K1+614D! %= "5K1+6&'4D! %9 "5K1&'(#+6)D! RI $Vjk!& $V;=! $Vl! $VMM)aa!' $Vam!1 $V<])7<<<! $V,n7Poo)-,7Pmm!! :",;:<((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((=& (SPTN<U3@7);V1 R, ",/p)7qri!# (/%9:N& '$-%9:7qriN* *A>:)>@37qriNN 1I,%963DW>)3,@,/p#1 I,9C7qri9,# "1V1); ,R (?)iT#! e,>6,,,&1 @&W+3@7"1 22A (?)iT' $s)T>J& :,(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((4)> &'(#)*& 2A ?,!:@((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((4)5 L1+"M4*4 % ( A7 ((4( BCDEFGHIJBKLLMNKOPQRIMSKOT XYZ[\]^IJBKLUVWIJXU_`a[bcdefXghI/ lIiO,78 M[Jcdb]b[bijab\bkblb ib]bb\bd&mb\bdnhop^qhrbstubvd diZru&mb\bdij^wbxgbXvib]bb\bd v\yf]zbXtj[{b|}Xbd[b]bb\bdv b~\n•X€x^ief]^ihh•|‚]bb\bd\ rb^tXfa|dxbxgzbsbdƒxhnht[b]bb\bd „]bXf)…p|{\]^ijb†‡hr„x„ˆ^^ikblb|‰ ^ufb~Xu[iddh]jŠanfb~Xb\{frb‹b‡ bŒtidb‹f•b|‰^ufa|dtjbŽb‚hr…•Xjkv•b‹f•b|‰^ufb‘bxg ^ihXjknftitjnt[^wb\"‡bZu^it‰|•]^a b\bXdbd’fxhb“]ga‰t‹’„s”Zr|‰^ufa t[^whYb\„bx…••fbŽd‡bXjka’fx…•lbw \]FGHIJBKLLMNKOPQRIMSKO_"`X•a[bcdefXgh[ „[b\odXjefX|‰^ufb~Xu–X^i^•bijb]bXd]bop^qb~Xu b—^’t|‰^uftitjhr…•Xjkvb~X|‰^ufbŽn• [b]bhr…vb]bihop^q^•efX(•—„[‰X|‰^uftib]bihop^q• b•wdX&rfgh‰Xbx•\]"^ib]b[bZid] ••‚‘t•b[\"ggf˜\t’\]"aX„nd…]hrZi d]b{gt’efXuXZgf|}•22 <L1+"M4*4 !J(LYKO !C(OD !J(+WDKO !J(MKO !C(ZK !RCC(!DR!RCC(JDKO !J(WVK !C([KO 22zjefXudhrX R (($( \RIE]K^WDKL_ORDPBKL C•fb‚fb~XZid]^i^ih[idggubb]bhefXu‰Xb]bit• dhrX•h]jŠtibxgn^•bbzfv|w„]kef]™š1tiF bxefXu[iddX›št1tiF^iXb]gZ‹„œs•ag gub]bhefXuij•XZgf|}Z•hr…\”bzjefXu•22 "gnefj[Zid]ijcd\]abstub‚f•^inozj|• hrb‹f•b|‰^ufgubbzjefXu•[cdx^inozj|•bn fbs•bzjefXu]bnfij\lbwthr b‹f•b|‰^ufdZid]3‹’efXu…Œbilbw„b\n efn^qb’fXb“hr^•btib]bXijbxhefXusXt Xf2=^i…\”efXub]gƒ…\”tŠ|{•hdwbdt‹’ij cdb]b[b"aZid]efXuXbochož|xbrefn^q b]bd•"gZ[hefXuXb~Xhmb]gab‚guhr …efXub\ZnbXahŸaXchabdb]atb”b~Xb]gxtjahm bd•b~XZid]bxb]bfrbŠ•ax^••bXhŸaXchattb~X €^iXdiXb‘b‚bxhrfrbŠ‰XbdZ[•b]g^ixghsnhr ^b]bbd•2A [fbŽbxtjb „]bhrb‹f•bXjZndb‹f•b|‰|uf b…p|{•\]3‹’•zj^i\]"ochb]bhefX udXbihrb]b••|db]b…•„ub{gdbfrb…wd •3Š|{a„•{‰…bdalXbdbsX…X…ŒbxhŸ^ibsXtibX^ib” bsXa”•Xb”nbbgbx•hlXbdij‰lXbdb b~XbsX…Œbx•hlXchijtilXZžbx•h‰•Xd‡b•b•xP} |i‹j•bxX…•„ubŠ]br[hefXuX^i…•…bdb~X •{‰tisz‰XXb]g„]bdoYr]b…•„uij—^’t ƒbd•dZid]"’fijbx–X^i„x[hr…•„uidnbŽ L1+"M4*4 !J(LYKO !C(OD !J(+WDKO !J(MKO !C(ZK !RCC(!DR!RCC(JDKO !J(WVK !C([KO !J(L\KL !C(DK ¡¡¡¡¡ ¡¡¡¡¡ ¡¡¡¡¡ ¡¡¡ ¡¡ 2=&•refXu‰Xb]bX EKKOM`R •› X› &Ÿ› 1ch› db]› 3¢”› 2A&snhr^b]bbd• 9 Xxb]…Z••id3Š|{a„x…•„u…bdnZ[•id …)hr…•„ub~Xhrbd•idxonjX_tŠ|{…bd`b]bfrbŠ b~XbŠXX…ŒZ•Xjka”•frbŠb~Xhr…^•efXb‘bx gXjkcdyf]xx‰Xb]b…•„utifrbŠ…ŒwdX"a„] uhb\Znb~X\]"&rhsnbfbdb]bbd•b~XZi d]b€^ihr2hdwhr^d•bx•hb]b…•„ub~XZi d] 3Š|{hdwtubwdXhrefXuX|•X•b]b…•„ubfrb…n[ ^iYbxX^is—tiZiX ]b…•„ugwdXbzjefXu•bxgt[cd•…Xf™ $5I;2= 2F,;Ut= 2F,;U$i= ]b…•„ut[cdb•]™ tjb]bZwY‹j•b•X„sb‚nefXzh[b]bwdhrb‹f •bbzjefXu[idZ•d|‰^ufb~Xb\hit£bxgbfb‹|‰ ^ufZid]bdb\sefXb]b…•„u• "gn^•bbzfvkef]¤NtiCbxefXuX[id›šaXb‚n n^•b]bbzfvv¤Nbxn^iXb~XC„s›ša¤Nbxn^isrb~XC „s›šatt[fl•Nbzfv…Œ^i™¤"bxn^iXb~XC „s›ša¤"bxn^isrb~XC„s›šatttjbzfv^•bijY Xdt’bdgn^•]b^•bijb‚nbxb]b\lbgn^• b]bbzfvtj3iZzj•hr^d•bhdw2> <L1+"M4*4 EKKOM`R •› X› &Ÿ› 1ch› db]› 3¢”› (bd 2]b…•„uZk…f—tbd• !C(OD!J(LYKO !J(WVK!RCC(ZK "wd…•„u(•„u_s…„¥hcd…•„u` , Xochožb]bn^•b]bbzfv[id› wNn^•bzfv ¤"bxn^iXb~XC„s›šdidi\nxbŽb‚„ghXochCbx n^iXchhidfrbŠb~Xx^f‰„sdidi\•tb]bbzf vefXu‚^icha^ib•a^iZa^ihŸa†bzfv¤"bxn^is rb~XC„s›šlbw\b•Š"gn^•bb]bbzfvbxefXuoX[X n|•Xtid„[efnn^•b~Xb]bbzfvt’b]befXu‚‘\"gZ[bN• ^isrb~XCnbŽXhr•¦idxhiN^iZb~X¦ti¦^iZb~XC[f „sbŽXb¦N„sn^isrb~XC3ubh„[h¦didi\n Z•tb\efn^qb]bbd•Yjh¦dd •xg‹jbzfvZX‚fYbzbXiXbzfv\ntb• hiYbxb]bn^•xh^wab]bt‹’b~XZid]Ybnefj[„[bcd \]"&r^ghbxg‹jXj^iZid]bzŠb‹‚t •b[ti•• .II !13:7! .II.1. GHIJBKLLMNKOPQRIMSKO ‡€zhtidaj[fefX€def] ]gb\ti„sbdž|‰^ufZ[r•|dduP‰^uf b—b‡tb]bihib]bt“•hibŽbxb]bihx]br^•tib‹h b]bihZ•difjhrb]bfœu"bdžb•XzŠbZi d]ib]b•bgb€^ib]bti…Xfxozj|•b]b|‰^ufb“b]b ihofefXb]bx]bbxg]braXdkstXf sefXb\b[sZ]d_hc……Xc`kblbhrb\bxghs nd2% L1+"M4*4 EKKOM`R •› X› &Ÿ› 1ch› db]› 3¢”› (bd iX isr 2>•hb]b\lbn^•bzfv QRIMSKO P‰^uf ih QRIMSKO P‰^uf ih QRIMSKO P‰^uf ih hc……Xc 2%]bXdkefXsZ]d 2I Lập trình hướng đối tượng (OOP=>+/:9:)C\ >T>7G49:O,) (($( JaWIMSKOLE] ƒfxX^ihr„§fbŽZij‰b]b‡bghb‚[b~Xt‹’hi „sZij‰b[b{gXj‰^•nŠblbwb~Xt‹’xXjx „]b\x^ihr„§fftidlb‚[ti^•‰l„sb‚ [ 3Š|{‰s…Xfzj^ib]b‡bŠ—„[tbd•™ • fk "•XbŽ ’fbXd &ifxb n…pXb‚]gl|{„]bihfX…—hixX‰b[[ j[f^i•a•XbŽb†‰b[„]b_fkab’fbXdahifxba`^i„sefX€ tl|{fj•a[fb•X]ghrl|{mbdtub’fXr wh‰sb’fbXdtihifxb^i[j[f d++a…•ƒfxXbzi…•ƒfxX|‰^uftiƒf xXb\ Trừu tượng hóa dữ liệu;7R,=:r,D)6>,,+, -U,,+4:>+G,C?,u07v C Trừu tượng hóa chương trình ;>R,=>+G%678 >>,,,7D,)v3s<78 (()( QRIMSKOb\NH QRIMSKO_+Z¨cb`^i…•„[‰X|‰^ufti~{b_Xjb†€^ib]b\lb¡ hcd|`Xd]b•|‰^ufxxgXXbslbn]Znb‹„§fb~X "…Xf™ QRIMSKOcdeFR_WLMfKOILgU NH_^X……`^ihr„]uhhd"…dtb]b„§f^„]b"x^i hrb]bbxb‹f•b|‰^uftib]b\lbXf_Xjxb]b„]b ^ihrb]bb“^dw`tj„bxhr^b•X…ŒZ[bhrhs nb‹f•b|‰^ufti\lbb~Xb]bfrb^x&m…Œ^ihr <L1+"M4*4 22 gub{g_…Xbc`b~X^xd^ab•Xbxgbdhr^^ihr „gfab†b]b…Œ^ib]bZ[bx„gfb~X^ ((>( LWhUIiKLb\LMfKOILgU ]bfrbŠZijw]b~X]bfrbŠ—h‰b]b]•|‰ ^ufdhrab••–Xhr‡b“ Thuộc tính;R<=78 R3,,?,C>)T>+ ]b\lb•bb]bdwrb~X]b\lb^iz^ih Xjkb]bfrbŠb~X]b\lbo]b•b]blbdwrb~Xhr tib•b„b{gbwdX Phương thức;><7=,6480>,6C>w+/ 0,0>+,0,K,+478 ,@;+,-= ]b\lb•–Xdhr^bxgb€Z•b]bb~X^x "’fijb€^iphrILjKOPR_H_&c……Xc`bd]bsuij{ frbtidabŽidsuhn^ihtubcdsux ]b’frb^tXfttjb]bXjk•b]bZ[gub~X ij„sn••b]bZ[gub~Xb]b„]btitubpsu bdhrij„sn•[b]b„]b .II.5. OWklKIYUPmKOOmRneFR_W dXY‹j^ib]bihXj~{bb…p|{hi„sb‚Z[[r |fb{gb~Xx•…p|{bŽb‚Z[blbˆb~Xihb‘b]bXh…b‚ fj’tidg€ihbwjhi„sb‚efXzh[‰^ub{gZ•dx •X€x^i…•xxt’blbˆ d"a„s‰b]bblbˆbxxhibn|‰^ufb‘tj 3hm•X„sgfj•b[tidb]bi‚|‰^ufbnfx hinsefXb]bi‚blbˆ_b]b\lb`g^ihtubx •X…Œ‹j…•xx•b…•t’|‰^ufbŽbxdhrs‰"¤f‚ „[š_fc`cd–Xb]bs‰b[„[Xjƒ‚fbŽbd"†t b]bs‰¤^Xš_jZ|`bozj|••b]bs‰„]bZX‚fbXn^i" at£bx‰dw^u‹•twhfj•—bxx|‰^uf .II.6. iKLopILaDqRKLrJRIDKUrs &r„]uhefX€b~X"^i…•„[ƒX(•„[ƒXbdžb•X• –Xhr^h•b\…•b]b^Y”wa‹•bxZk…f‰\lbXj b]bi‚|‰^ufh)nˆ„[ƒXbdžb•X…p|{^whrb]b|} |ib]bhd|f^cb\hi„sb‚hrXjkb]bhd|f^cxyfXb\b‹f„[ƒX ija|wbzjb~Xb]b^biPwbzjb~Xb]b^sb]b bzjXnt[b]b^b\…•b†b€^i^ULDqHDJrKIUFDCCtCWHrJUFDCC`tib]b ^|£of‹b€^i^UEKqULRFnUFDCCtCWuUFDCCs Thừa kế;<,<=E,,+;/0,=),,+,-,D E>+,6C,%9:?,,V7vWRp9, L1+"M4*4 2= Lớp cha ;<,=,6,,+,-3+,%pRp>+3 T9, Lớp con ;R,=%p>+)?,-,,@,)4>) 8?,-49, 3Š|{22™•X…Œozj|•hrb]b^hsnbdtub]b‹©h_och 2R`xX„gf‹©h™wbŠti…]b•Xbxgwdhr‹©hkef] Z•b]b•–Xb]bi‚|‰^uf\lt…XahY…Xblfaij ]of‹ZnaZnefj’tiiof‹Zn]b‹©hbxgb^‹jXab‹ti€b"x ^ib]b\lb•bu•hr‹©h[xb•X•–XX^|£of‹ •^iwbŠti…]bwbŠbx•a…„q]itiblX’fZib~Xb]b]bn„]b Xf]bi‚|‰^uf\ltb]bj[fijb‡tid•–Xb~X^ wbŠwbŠb‘b‚bxhr\lb‰Xx^i‡hfX]bi‚|‰^ufo]b •bd…]b…ŒZXd”h•b~X_b]b`]bna^dwZX_blXjh’h`ti…uf(Fb~X xtjb•Xbxg‹ja…]btiwbŠbxbfb]b‡b‹©had„ t£bxb]bfrbŠ• 2R™‹©htib]b^|£of‹b~Xx .II.7. iKLPDLBKLqHEFkvEJHLRvrs ŠXof‹u„bx„]uh„[ƒX)hr^|£of‹bwdXaxbx gXjkb]b•bub]b\lbidxhixƒX•ƒ^b\…•b~Xx <L1+"M4*4 [...]... loại này Còn ngôn ngư C++ thuộc loại ngôn ngư “lai” bởi vì nó được phát triển từ ngôn ngư C, sử dụng cú pháp của ngôn ngư C Trên C++ vẫn có thể sử dụng tính cấu trúc và đối tượng của chương trình TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN 16 Lập trình hướng đối tượng C++ CHƯƠNG 2 NHỮ NG MỞ RÔ NG CỦ A C++ SO VỚ I C I LỊCH SỬ NGÔN NGỮ LẬP TRÌNH C++ Vào nhưng năm đầu... dịch ra đời Và chính từ đó, xuất hiện tên gọi "C++" Bjarne Stroustrup mô tả ngôn ngư C++ lần đầu tiên trong bài báo có nhan đề "Data Abstraction in C" Sau một vài hiệu chỉnh C++ được công bố rộng rãi trong quyển "The C++ Programming Language" của Bjarne Stroustrup xuất hiện đánh dấu sự hiện diện thực sự của C++, người lập tình chuyên nghiệp từ đây đã có một... kiểu của các tham số 3 Khai báo hàm nguyên mẫu Với C++, chỉ có phương pháp thứ 3 là chấp nhận được Ví dụ: / *C++ không có khai báo kiểu này*/ /*cả C và C++ cho phép*/ double vidu(u,v) double vidu(int u,double v) int u; {} double v; {} TRUỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN Lập trình hướng đối tượng C++ 17 Đối với C++, một lời gọi hàm chỉ được chấp nhận khi trình... dạng sau: class { private: public: }; TRUỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN Lập trình hướng đối tượng C++ Ví dụ 3.2: Chúng ta xây dựng lớp Point thay cho cấu trúc ở ví dụ 3.1... chính là truyền thông điệp cho hàm thành phần đó Cú pháp như sau: .(); II.2 Tạo đối tượng Trong C++, một đối tượng có thể được xác lập thông quan một biến/hằng có kiểu lớp Cú pháp tạo đối tượng như sau: ; Do đó vùng nhớ được cấp phát cho một biến kiểu lớp sẽ cho ta... init\n"; x = ox; y = oy; /*x,y là các thành phần của đối tượng gọi hàm thành phần*/ } void point::move(int dx, int dy) { cout . GHIJBKLLMNKOPQRIMSKO ‡€zhtidaj[fefX€def] ]gbti„sbdž|‰^ufZ[r•|dduP‰^uf b—b‡tb]bihib]bt“•hibŽbxb]bihx]br^•tib‹h b]bihZ•difjhrb]bfœu"bdžb•XzŠbZi d]ib]b•bgb€^ib]bti…Xfxozj|•b]b|‰^ufb“b]b ihofefXb]bx]bbxg]braXdkstXf sefXbb[sZ]d_hc……Xc`kblbhrbbxghs nd2% L1+"M4*4 EKKOM`R •› X› &Ÿ› 1ch› db]› 3¢”› (bd iX isr 2>•hb]blbn^•bzfv QRIMSKO P‰^uf ih QRIMSKO P‰^uf ih QRIMSKO P‰^uf ih hc……Xc 2%]bXdkefXsZ]d 2I Lập trình hướng đối tượng (OOP=>+/:9:)C >T>7G49:O,) (($(. &ifxb n…pXb‚]gl|{„]bihfX…—hixX‰b[[ j[f^i•a•XbŽb†‰b[„]b_fkab’fbXdahifxba`^i„sefX€ tl|{fj•a[fb•X]ghrl|{mbdtub’fXr wh‰sb’fbXdtihifxb^i[j[f d++a…•ƒfxXbzi…•ƒfxX|‰^uftiƒf xXb Trừu tượng hóa dữ liệu;7R,=:r,D)6>,,+, -U,,+4:>+G,C?,u07v C Trừu tượng. liệu;7R,=:r,D)6>,,+, -U,,+4:>+G,C?,u07v C Trừu tượng hóa chương trình ;>R,=>+G%678 >>,,,7D,)v3s<78