intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Lý thuyết hệ điều hành - Chương 4

Chia sẻ: Nguyễn Nhi | Ngày: | Loại File: PDF | Số trang:15

83
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

TOáN Tử TảI BộI Ch-ơng 4 trình bày các vấn đề sau: Định nghĩa toán tử tải bội Một số l-u ý khi xây dựng toán tử tải bội Một số ví dụ minh họa 4.1. Định nghĩa toán tử tải bội Các toán tử cùng tên thực hiện nhiều chức năng khác nhau đ-ợc gọi là toán tử tải bội. Dạng định nghĩa tổng quát của toán tử tải bội nh- sau: Kiểu_trả_về operator op(danh sách tham số) {//thân toán tử} Trong đó: Kiểu_trả_về là kiểu kết quả thực hiện của toán tử. op là tên toán tử...

Chủ đề:
Lưu

Nội dung Text: Bài giảng Lý thuyết hệ điều hành - Chương 4

  1. CH−¬NG 4 TO¸N Tö T¶I BéI Ch−¬ng 4 tr×nh bµy c¸c vÊn ®Ò sau: §Þnh nghÜa to¸n tö t¶i béi Mét sè l−u ý khi x©y dùng to¸n tö t¶i béi Mét sè vÝ dô minh häa 4.1. §Þnh nghÜa to¸n tö t¶i béi C¸c to¸n tö cïng tªn thùc hiÖn nhiÒu chøc n¨ng kh¸c nhau ®−îc gäi lμ to¸n tö t¶i béi. D¹ng ®Þnh nghÜa tæng qu¸t cña to¸n tö t¶i béi nh− sau: KiÓu_tr¶_vÒ operator op(danh s¸ch tham sè) {//th©n to¸n tö} Trong ®ã: KiÓu_tr¶_vÒ lμ kiÓu kÕt qu¶ thùc hiÖn cña to¸n tö. op lμ tªn to¸n tö t¶i béi operator op(danh s¸ch tham sè) gäi lμ hμm to¸n tö t¶i béi, nã cã thÓ lμ hμm thμnh phÇn hoÆc lμ hμm b¹n, nh−ng kh«ng thÓ lμ hμm tÜnh. Danh s¸ch tham sè ®−îc khai b¸o t−¬ng tù khai b¸o biÕn nh−ng ph¶i tu©n theo nh÷ng quy ®Þnh sau: - NÕu to¸n tö t¶i béi lμ hμm thμnh phÇn th×: kh«ng cã tham sè cho to¸n tö mét ng«i vμ mét tham sè cho to¸n tö hai ng«i. Còng gièng nh− hμm thμnh phÇn th«ng th−êng, hμm thμnh phÇn to¸n tö cã ®èi ®Çu tiªn (kh«ng t−êng minh) lμ con trá this . - NÕu to¸n tö t¶i béi lμ hμm b¹n th×: cã mét tham sè cho to¸n tö mét ng«i vμ hai tham sè cho to¸n tö hai ng«i. Qu¸ tr×nh x©y dùng to¸n tö t¶i béi ®−îc thùc hiÖn nh− sau: - §Þnh nghÜa líp ®Ó x¸c ®Þnh kiÓu d÷ liÖu sÏ ®−îc sö dông trong c¸c to¸n tö t¶i béi - Khai b¸o hμm to¸n tö t¶i béi trong vïng public cña líp - §Þnh nghÜa néi dung cÇn thùc hiÖn 4.2. Mét sè l−u ý khi x©y dùng to¸n tö t¶i béi 1. Trong C++ ta cã thÓ ®−a ra nhiÒu ®Þnh nghÜa míi cho hÇu hÕt c¸c to¸n tö trong C++, ngo¹i trõ nh÷ng to¸n tö sau ®©y: - To¸n tö x¸c ®Þnh thμnh phÇn cña líp (‘.’) - To¸n tö ph©n gi¶i miÒn x¸c ®Þnh (‘::’) - To¸n tö x¸c ®Þnh kÝch th−íc (‘sizeof’) Lập trình HĐT 78 http://www.ebook.edu.vn
  2. - To¸n tö ®iÒu kiÖn 3 ng«i (‘?:’) 2. MÆc dÇu ng÷ nghÜa cña to¸n tö ®−îc më réng nh−ng có ph¸p, c¸c quy t¾c v¨n ph¹m nh− sè to¸n h¹ng, quyÒn −u tiªn vμ thø tù kÕt hîp thùc hiÖn cña c¸c to¸n tö vÉn kh«ng cã g× thay ®æi. 3. Kh«ng thÓ thay ®æi ý nghÜa c¬ b¶n cña c¸c to¸n tö ®· ®Þnh nghÜa tr−íc, vÝ dô kh«ng thÓ ®Þnh nghÜa l¹i c¸c phÐp to¸n +, - ®èi víi c¸c sè kiÓu int, float. 4. C¸c to¸n tö = , ( ) , [ ] , -> yªu cÇu hμm to¸n tö ph¶i lμ hμm thμnh phÇn cña líp, kh«ng thÓ dïng hμm b¹n ®Ó ®Þnh nghÜa to¸n tö t¶i béi. 4.3. Mét sè vÝ dô VÝ dô 4.1 To¸n tö t¶i béi mét ng«i, dïng hμm b¹n #include #include class Diem { private: float x,y,z; public: Diem() {} Diem(float x1,float y1,float z1) { x = x1; y = y1; z=z1;} friend Diem operator -(Diem d) { Diem d1; d1.x = -d.x; d1.y = -d.y;d1.z=-d.z; return d1; } void hienthi() { cout
  3. Diem p(2,3,-4),q; q = -p; p.hienthi(); q.hienthi(); getch(); } VÝ dô 4.2 To¸n tö t¶i béi hai ng«i, dïng hμm b¹n #include #include class Diem { private: float x,y,z; public: Diem() {} Diem(float x1,float y1,float z1) { x = x1; y = y1; z=z1;} friend Diem operator +(Diem d1, Diem d2) { Diem tam; tam.x = d1.x + d2.x; tam.y = d1.y + d2.y; tam.z = d1.z + d2.z; return tam; } void hienthi() { cout
  4. d1.hienthi(); d2.hienthi(); cout
  5. VÝ dô 4.4 To¸n tö t¶i béi hai ng«i, dïng hμm thμnh phÇn #include #include class Diem { private: float x,y,z; public: Diem() {} Diem(float x1,float y1,float z1) { x = x1; y = y1; z=z1;} Diem operator +(Diem d2) { x = x + d2.x; y = y + d2.y; z = z + d2.z; return (*this); } void hienthi() { cout
  6. VÝ dô 4.5 #include #include class Diem { private: int x,y; public: Diem() {} Diem(int x1,int y1) { x = x1; y = y1;} void operator -() { x = -x; y = -y; } void hienthi() { cout
  7. {a=x; b=y;} sophuc operator +(sophuc c2) { sophuc c3; c3.a= a + c2.a ; c3.b= b + c2.b ; return (c3); } void hienthi(sophuc c) { cout
  8. a= a + c2.a ; b= b + c2.b ; return (*this); } void hienthi() { cout
  9. }; void main() { clrscr(); sophuc d1 (2.1,3.4); sophuc d2 (1.2,2.3) ; sophuc d3 ; cout
  10. string string::operator =(string s2) { strcpy(s,s2.s) ; return *this; } int string::operator 0 ; } int string::operator ==(string s2) { return strcmp(s,s2.s)==0 ; } void main() { clrscr(); string o1 ("Trung Tam "), o2 (" Tin hoc"), o3; cout
  11. cout
  12. Diem Diem::operator ++(int) { ++*this; return *this; } Diem & Diem::operator --() { x--; y--; return (*this); } Diem Diem::operator --(int) { --*this; return *this; } void main() { clrscr(); Diem d1(5,10),d2(20,25),d3(30,40),d4(50,60); cout
  13. cout
  14. public: SO(int x=0) { giatri = x; } SO (SO &tso) { giatri = tso.giatri; } friend istream& operator>>(istream&,SO&); friend ostream& operator
  15. Bμi tËp 1. §Þnh nghÜa c¸c phÐp to¸n t¶i béi =, ==, ++, --, +=, trªn líp Time (bμi tËp 1 ch−¬ng 3). 2. §Þnh nghÜa c¸c phÐp to¸n t¶i béi =, ==, ++, --, +=, trªn líp Date (bμi tËp 2 ch−¬ng 3). 1. §Þnh nghÜa c¸c phÐp to¸n t¶i béi +, -, *, =, ==, != trªn líp c¸c ma trËn vu«ng. 2. §Þnh nghÜa c¸c phÐp to¸n t¶i béi +, -, * trªn líp ®a thøc. 3. §Þnh nghÜa c¸c phÐp to¸n t¶i béi +, -, *, /, =, ==, +=, -=, *=, /= , , =, != , ++, -- trªn líp Phanso (bμi tËp 10 ch−¬ng 3). 4. Ma trËn ®−îc xem lμ mét vect¬ mμ mçi thμnh phÇn cña nã lμ mét vect¬. Theo nghÜa ®ã, h·y ®Þnh nghÜa líp Matran dùa trªn vect¬. T×m c¸ch ®Ó ch−¬ng tr×nh dÞch hiÓu ®−îc phÐp truy nhËp m[i][j], trong ®ã m lμ mét ®èi t−îng thuéc líp Matran. Lập trình HĐT 92 http://www.ebook.edu.vn
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2