Bài giảng Lập trình hướng đối tượng trong C++ - Phạm Thị Quỳnh - Chương 4: Đối tượng và lớp (Phần 2)
Chồng toán tử mở rộng ý nghĩa các toán tử trong C++.
Chồng toán tử cho phép những câu lệnh như sau sẽ trở lên dễ hiểu hơn.
Ví dụ:
Date d1(12,3,1989);
Date d2;
d2.add_days(d1,45);
Có thể được viết:
d2=d1+45;
CHƯƠNG 4: ĐỐI TƯỢNG & LỚP (II) Chồng toán tử Chồng toán tử Chồng toán tử mở rộng ý nghĩa các toán tử trong C++. Chồng toán tử cho phép những câu lệnh như sau sẽ trở lên dễ hiểu hơn. Ví dụ: Date d1(12,3,1989); Date d2; d2.add_days(d1,45); Có thể được viết: d2=d1+45; Chồng toán tử … Cú pháp class complex { double re, im; // re và im là phần thực và phần ảo của số phức public: complex (double r, double i) : re(r), im(i) {}; complex operator+(complex c); }; complex c1(2.2,3.0); // khởi tạo số phức c1 complex c2(1.0,-4.5); // khởi tạo số phức c2 complex c3=c1+c2; // c1 + c2 complex c4=c1.operator+(c2); // gọi tường minh Tham số bên trái toán tử là đối tượng có toán tử là hàm thành viên. Tham số bên phải toán tử là tham số cần truyền Chồng toán tử 1 toán hạng class Date { void operator++(); // tiền tố } void Date::operator++ () { if (++day > days_in_month()) { day=1; if (++month > 12) { month=1; year++; } } } Date d1(31,12,1999); ++d1; // kết quả là ngày 1.1.2000 Chồng toán tử 2 toán hạng class Date { Date operator+(int days) const; }; Date Date::operator+(int days) const; { Date tmp=*this; for (int i=0; i < days; i++) ++tmp; return tmp; } Date d1(1,4,1999); Date d2=d1+25; // kết quả là 26.4.2000 Chồng toán tử quan hệ class Date { bool operator==(Date d) { return (day==d.day) && (month==d.month) && (year==d.year); }; bool operator<(Date d) { if (year < d.year) return true; else if (year==d.year) && (month < d.month) return true; else return (month==d.month) && (day < d.day); }; };
File đính kèm:
- Bài giảng Lập trình hướng đối tượng trong C++ - Phạm Thị Quỳnh - Chương 4 Đối tượng và lớp (Phần 2).ppt