CHƯƠNG 8: TÁI ĐỊNH NGHĨA (OVERLOADING)
Số trang: 18
Loại file: ppt
Dung lượng: 133.00 KB
Lượt xem: 11
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:
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.
Nội dung trích xuất từ tài liệu:
CHƯƠNG 8: TÁI ĐỊNH NGHĨA (OVERLOADING) CHƯƠNG 8: TÁI ĐỊNH NGHĨA (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ơ 1 Chương 8 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à deleteKhoa Công Nghệ Thông Tin - Đại Học Cần Thơ 2 Chương 8 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: Số lượng Kiểu Thứ tự class Time { void main() { //... int h, m, s; long GetTime (void); // số giây tính từ nửa đêm long t = GetTime(); // Gọi hàm ??? void GetTime (int &hours, GetTime(h, m, s); // Gọi hàm ??? int &minutes, } int &seconds); }; Có thể dùng đối số mặc định.Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ 3 Chương 8 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: . .* :: ?: sizeofKhoa Công Nghệ Thông Tin - Đại Học Cần Thơ 4 Chương 8 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; }; Có 1 tham số (Nếu là toán tử nhị hạng) 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); };Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ 5 Chương 8 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 operator - (Point &p, Point &q) {return Point(p.x - q.x,p.y - q.y); } private: Có 2 tham số int x, y; (Nếu là toán tử nhị hạng) }; void main() { Point p1(10,20), p2(10,20); Point p3 = p1 + p2; Point p4 = p1 - p2; Point p5 =operator + (p3, p4); Point p6 = operator – (p3, p4); };Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ 6 Chương 8 Tái định nghĩa toán tử (tt) Cải tiến lớp tập hợp (Set): #include // Định nghĩa các toán tử const maxCard = 100; ………………. enum Bool {false, true}; ………………. class Set { int main (void) public: { Set s1, s2, s3; Set(void) { card = 0; } s1.AddElem(10); s1.AddElem(20); friend Bool operator & (const int, Set&);// thanh vien ? s1.AddElem(30); s1.AddElem(40); friend Bool operator == (Set&, Set&); // bang ? s2.AddElem(30); s2.AddElem(50); friend Bool operator != (Set&, Set&); // khong bang ? s2.AddElem(10); s2.AddElem(60); friend Set operator * (Set&, Set&); // giao friend Set operator + (Set&, Set&); // hop cout Chương 8 Chuyển kiểu Muốn thực hiện các phép cộng: void main() { Point p1(10,20), p2(30,40), p3, p4, p5; p3 = p1 + p2; p4 = p1 + 5; p5 = 5 + p1; }; Có thể định nghĩa thêm 2 toán tử: class Point { ...
Nội dung trích xuất từ tài liệu:
CHƯƠNG 8: TÁI ĐỊNH NGHĨA (OVERLOADING) CHƯƠNG 8: TÁI ĐỊNH NGHĨA (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ơ 1 Chương 8 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à deleteKhoa Công Nghệ Thông Tin - Đại Học Cần Thơ 2 Chương 8 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: Số lượng Kiểu Thứ tự class Time { void main() { //... int h, m, s; long GetTime (void); // số giây tính từ nửa đêm long t = GetTime(); // Gọi hàm ??? void GetTime (int &hours, GetTime(h, m, s); // Gọi hàm ??? int &minutes, } int &seconds); }; Có thể dùng đối số mặc định.Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ 3 Chương 8 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: . .* :: ?: sizeofKhoa Công Nghệ Thông Tin - Đại Học Cần Thơ 4 Chương 8 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; }; Có 1 tham số (Nếu là toán tử nhị hạng) 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); };Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ 5 Chương 8 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 operator - (Point &p, Point &q) {return Point(p.x - q.x,p.y - q.y); } private: Có 2 tham số int x, y; (Nếu là toán tử nhị hạng) }; void main() { Point p1(10,20), p2(10,20); Point p3 = p1 + p2; Point p4 = p1 - p2; Point p5 =operator + (p3, p4); Point p6 = operator – (p3, p4); };Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ 6 Chương 8 Tái định nghĩa toán tử (tt) Cải tiến lớp tập hợp (Set): #include // Định nghĩa các toán tử const maxCard = 100; ………………. enum Bool {false, true}; ………………. class Set { int main (void) public: { Set s1, s2, s3; Set(void) { card = 0; } s1.AddElem(10); s1.AddElem(20); friend Bool operator & (const int, Set&);// thanh vien ? s1.AddElem(30); s1.AddElem(40); friend Bool operator == (Set&, Set&); // bang ? s2.AddElem(30); s2.AddElem(50); friend Bool operator != (Set&, Set&); // khong bang ? s2.AddElem(10); s2.AddElem(60); friend Set operator * (Set&, Set&); // giao friend Set operator + (Set&, Set&); // hop cout Chương 8 Chuyển kiểu Muốn thực hiện các phép cộng: void main() { Point p1(10,20), p2(30,40), p3, p4, p5; p3 = p1 + p2; p4 = p1 + 5; p5 = 5 + p1; }; Có thể định nghĩa thêm 2 toán tử: class Point { ...
Tìm kiếm theo từ khóa liên quan:
lập trình C tái định nghĩa overloading Tái định nghĩa hàm Tái định nghĩa toán tử Khởi tạo ngầm địnhTài liệu có liên quan:
-
Hướng dẫn thực hành lập trình C trên Visual Studio
9 trang 139 0 0 -
Giáo trình Kỹ thuật lập trình C: Căn bản & nâng cao - Phần 1
202 trang 132 0 0 -
Lập trình C - Cấu trúc dữ Liệu
307 trang 110 0 0 -
STL lập trình khái lược trong C++ part 1
35 trang 108 0 0 -
Giáo trình Ngôn ngữ lập trình C căn bản
142 trang 107 0 0 -
Program C Ansi Programming Embedded Systems in C and C++ phần 4
12 trang 104 0 0 -
Bài giảng Phát triển phần mềm mã nguồn mở: Lập trình C/Linux - Bùi Minh Quân
29 trang 77 0 0 -
Giáo trình môn ngôn ngữ lập trình C
284 trang 72 0 0 -
Giáo trình về môn Lập trình C căn bản
131 trang 55 0 0 -
GIÁO ÁN LÝ THUYẾT LẬP TRÌNH C - Bài 4: Cấu trúc lặp
17 trang 46 0 0