Định nghĩa chồng toán tử trên lớp

18 910 8
Định nghĩa chồng toán tử trên lớp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

L P TRÌNH HƯ NG I TƯ NG V I C++ Định nghĩa chồng toán tử lớp M C TIÊU C A BÀI NÀY GIÚP NGƯ I H C Cách nh nghĩa phép toán cho ki u d li u l p c u trúc Các toán t chuy n ki u áp d ng cho ki u d li u l p A/ NH C L I LÝ THUY T Toán t c nh nghĩa ch ng b ng cách nh nghĩa m t hàm toán t Tên hàm toán t bao g m t khoá operator theo sau ký hi u c a toán t c nh nghĩa ch ng H u h t toán t c a C++ u có th nh nghĩa ch ng Khơng th t o ký hi u phép toán m i Ph i m b o c tính nguyên thu c a toán t c nh nghĩa ch ng, ch ng h n: ưu tiên, tr t t k t h p, sô Không s d ng tham s có giá tr ng m nh nh nghĩa ch ng toán t Các toán t (), [], ->, = yêu c u hàm toán t ph i hàm thành ph n c a l p Hàm toán t có th hàm thành ph n hàm b n c a l p Khi hàm toán t hàm thành ph n, toán h ng bên trái ln i thu c l p N u tốn h ng bên trái i tư ng c a l p khác hàm tốn t tương ng ph i hàm b n Chương trình d ch khơng t bi t cách chuy n ki u gi a ki u d li u chu n ki u d li u t nh nghĩa Vì v y ngư i l p trình c n ph i mơ t tư ng minh chuy n i dư i d ng hàm thi t l p chuy n ki u hay hàm toán t chuy n ki u M t hàm toán t chuy n ki u th c hi n chuy n i t m t i tư ng thư c l p sang i tư ng thu c l p khác ho c m t i tư ng có ki u c nh nghĩa trư c Hàm thi t l p chuy n ki u có m t tham s th c hi n chuy n i t m t giá tr sang i tư ng ki u l p Toán t gán toán t hay c nh nhgiã ch ng nh t, c bi t l p có thành ph n d li u ng nh nghĩa ch ng toán t tăng, gi m m t ngôi, ph i phân bi t hai hàm toán t tư ng ng cho d ng ti n t d ng h u t B M T S LƯU Ý (Các l i thư ng g p, m t s thói quen l p trình t t ) Các l i thư ng g p T o m t toán t Thay i nh nghĩa c a toán t ki u c nh nghĩa trư c Cho r ng vi c nh nghĩa ch ng m t toán t s t ng kéo theo nh nghĩa ch ng c a toán t liên quan Quên nh nghĩa ch ng toán t gán hàm thi t l p chép cho l p có thành ph n d li u ng M t s thói quen l p trình t t S d ng tốn t nh nghĩa ch ng i u ó làm cho chương trình sáng Tránh l m d ng nh nghĩa ch ng tốn t i u ó ãn n khó ki m sốt chương trình Chú ý n tính ch t nguyên thu c a toán t c nh nghĩa ch ng Hàm thi t l p, toán t gán, hàm thi t l p chép c a m t l p thư ng i Trang 31 L P TRÌNH HƯ NG I TƯ NG V I C++ C/ BÀI T P M U Ví d 1: M t l p phân s có tốn t c ng(+) c nh nghĩa sau: class PS { public: PS(int ts=0, int ms=1); PS operator+(PS); }; Trong dòng l nh sau ây dòng sai? PS a,b,c; a=b+c;//(1) a=b+3;//(2) a=3+b;//(3) L i gi i Trong ba dịng l nh hai dịng u úng b i lúc ó ta có: (1) a=b.operator+(c) tốn t ã c nh nghĩa l p phân s (2) a=b.operator+(3) v i s t ng chuy n ki u thành phân s Dịng l nh (3) sai ta khơng có toán t c ng m t s nguyên v i m t phân s có th th c hi n c t t c ba dòng l nh tốn t c ng l p PS ph i c nh nghĩa m t hàm b n class PS { public: PS(int ts=0, int ms=1); friend PS operator+(PS); }; Khi ó l i g i s tương ng v i toán t sau: (1) a=operator+(b,c) (2) a=operator+(b,3) (3) a=operator+(3,b) Ví d 2:Chúng ta xây d ng l p s ph c v i tên l p Complex a hóa toán t + l p CT3_1.CPP #include class Complex { private: double Real,Imaginary; public: Complex(double R=0.0,double I=0.0);//Constructor mac dinh void Print();//Hien thi so phuc Complex operator + (Complex Z);//Phep cong hai so phuc Complex operator + (double R);//Phep cong mot so phuc voi mot so thuc }; 11 Complex::Complex(double R,double I) { Real = R; Imaginary = I; } Trang 32 L P TRÌNH HƯ NG I TƯ NG V I C++ void Complex::Print() { cout

Ngày đăng: 05/10/2013, 13:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan