Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ
Tải xuống
Mục tiêu là tái định nghĩa hàm. Tái định nghĩa toán tử. Chuyển đổi kiểu. Tái định nghĩa toán tử xuất . Tái định nghĩa toán tử [], toán tử . Khởi tạo ngầm định - Gán ngầm định. Tái định nghĩa toán tử ++ và - Tái định nghĩa new và delete | TÁI ĐỊNH NGHĨA CHƯƠNG 8: (OVERLOADING) Bộ môn Hệ Thống Máy Tính và Truyền Thông Khoa Công Nghệ Thông Tin và Truyền Thông Đại học Cần Thơ Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ Nội dung Tái định nghĩa hàm. Tái định nghĩa toán tử. Chuyển đổi kiểu. Tái định nghĩa toán tử xuất (>) Tái định nghĩa toán tử [], toán tử () Khởi tạo ngầm định - Gán ngầm định. Tái định nghĩa toán tử ++ và -- Tái định nghĩa new và delete Chương 8 Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ Tái định nghĩa hàm Định nghĩa các hàm cùng tên Đối số phải khác nhau: class Time { //. long GetTime (void); // số giây tính từ nửa đêm void GetTime (int &hours, int &minutes, int &seconds); }; Số lượng Thứ tự Kiểu Có thể dùng đối số mặc định. void main() { int h, m, s; long t = GetTime(); // Gọi hàm ??? GetTime(h, m, s); // Gọi hàm ??? } Chương 8 Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ Tái định nghĩa toán tử Định nghĩa các phép toán trên đối tượng. Các phép toán có thể tái định nghĩa: Đơn hạng + - * ! ~ & ++ -- () -> ->* new delete Nhị hạng + - * / % & | ^ > = += -= /= %= &= |= ^= >= == != = && || [] () , Các phép toán không thể tái định nghĩa: . .* :: ?: sizeof Chương 8 Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ Tái định nghĩa toán tử (tt) Bằng hàm thành viên: class Point { public: Point (int x, int y) { Point::x = x; Point::y = y; } Point operator + (Point &p) { return Point(x + p.x,y + p.y); } Point operator - (Point &p) { return Point(x - p.x, y - p.y); } private: int x, y; }; void main() { Point p1(10,20), p2(10,20); Point p3 = p1 + p2; Point p4 = p1 - p2; Point p5 = p3.operator + (p4); Point p6 = p3.operator – (p4); }; Có 1 tham số (Nếu là toán tử nhị hạng) Chương 8 Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ Tái định nghĩa toán tử (tt) Bằng hàm độc lập: thường khai báo friend class Point { public: Point (int x, int y) { Point::x = x; Point::y = y; } friend Point operator + (Point &p, Point &q) {return Point(p.x + q.x,p.y + q.y); } friend Point . | TÁI ĐỊNH NGHĨA CHƯƠNG 8: (OVERLOADING) Bộ môn Hệ Thống Máy Tính và Truyền Thông Khoa Công Nghệ Thông Tin và Truyền Thông Đại học Cần Thơ Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ Nội dung Tái định nghĩa hàm. Tái định nghĩa toán tử. Chuyển đổi kiểu. Tái định nghĩa toán tử xuất (>) Tái định nghĩa toán tử [], toán tử () Khởi tạo ngầm định - Gán ngầm định. Tái định nghĩa toán tử ++ và -- Tái định nghĩa new và delete Chương 8 Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ Tái định nghĩa hàm Định nghĩa các hàm cùng tên Đối số phải khác nhau: class Time { //. long GetTime (void); // số giây tính từ nửa đêm void GetTime (int &hours, int &minutes, int &seconds); }; Số lượng Thứ tự Kiểu Có thể dùng đối số mặc định. void main() { int h, m, s; long t = GetTime(); // Gọi hàm ??? GetTime(h, m, s); // Gọi hàm ??? } Chương 8 Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ Tái định nghĩa toán tử Định nghĩa các phép toán trên đối tượng. Các phép toán có thể tái định nghĩa: Đơn hạng + - *