Bài giảng Lý thuyết hệ điều hành - Chương 4
Số trang: 15
Loại file: pdf
Dung lượng: 0.00 B
Lượt xem: 18
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
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ử...
Nội dung trích xuất từ tài liệu:
Bài giảng Lý thuyết hệ điều hành - Chương 4CH−¬NG 4 TO¸N Tö T¶I BéICh−¬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äa4.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¸ntö 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¸chtham 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étng«i vμ mét tham sè cho to¸n tö hai ng«i. Còng gièng nh− hμm thμnh phÇnth«ng th−êng, hμm thμnh phÇn to¸n tö cã ®èi ®Çu tiªn (kh«ng t−êng minh) lμ contrá 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μ haitham 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Ön4.2. Mét sè l−u ý khi x©y dùng to¸n tö t¶i béi1. 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 - 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¨nph¹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¸ntö 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ñalí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 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 d1.hienthi(); d2.hienthi(); coutVÝ 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() { coutVÝ 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 {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 a= a + c2.a ; b= b + c2.b ; return (*this); } void hienthi() { cout};void main(){ clrscr(); sophuc d1 (2.1,3.4); sophuc d2 (1.2,2.3) ; sophuc d3 ; coutstring string::operator =(string s2){ strcpy(s,s2.s) ; return *this;}int string::operator 0 ;}int string::operator ...
Nội dung trích xuất từ tài liệu:
Bài giảng Lý thuyết hệ điều hành - Chương 4CH−¬NG 4 TO¸N Tö T¶I BéICh−¬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äa4.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¸ntö 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¸chtham 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étng«i vμ mét tham sè cho to¸n tö hai ng«i. Còng gièng nh− hμm thμnh phÇnth«ng th−êng, hμm thμnh phÇn to¸n tö cã ®èi ®Çu tiªn (kh«ng t−êng minh) lμ contrá 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μ haitham 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Ön4.2. Mét sè l−u ý khi x©y dùng to¸n tö t¶i béi1. 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 - 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¨nph¹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¸ntö 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ñalí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 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 d1.hienthi(); d2.hienthi(); coutVÝ 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() { coutVÝ 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 {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 a= a + c2.a ; b= b + c2.b ; return (*this); } void hienthi() { cout};void main(){ clrscr(); sophuc d1 (2.1,3.4); sophuc d2 (1.2,2.3) ; sophuc d3 ; coutstring string::operator =(string s2){ strcpy(s,s2.s) ; return *this;}int string::operator 0 ;}int string::operator ...
Tìm kiếm theo từ khóa liên quan:
lập trình hướng đối tượng ngôn ngữ c định nghĩa lớp giáo trình máy tính lý thuyết máy tínhGợi ý tài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 259 0 0 -
101 trang 198 1 0
-
14 trang 131 0 0
-
Giáo trình Lập trình C căn bản - HanoiAptech Computer Education Center
136 trang 119 0 0 -
Giáo trình lập trình hướng đối tượng - Lê Thị Mỹ Hạnh ĐH Đà Nẵng
165 trang 111 0 0 -
Giáo trình Tin học đại cương: Phần 2 - Trần Đình Khang
118 trang 98 0 0 -
Giáo trình Phân tích, thiết kế hướng đối tượng với UML: Phần 1 - Trường ĐH Công nghiệp Quảng Ninh
111 trang 95 0 0 -
Giáo trình Lập trình Windows 1 - Trường CĐN Đà Lạt
117 trang 92 0 0 -
Giáo trình Máy tính và mạng máy tính: Phần 2
67 trang 91 0 0 -
101 thuật toán chương trình C: Phần 2
130 trang 86 0 0