Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 62 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
62
Dung lượng
2,51 MB
Nội dung
ươ Chương Chương định nghĩ toá định nghĩa toán tử lớp trê (class operators) Mục đích chương : Cách định nghĩa phép toán cho kiểu liệu lớp cấu trúc Các toán tử chuyển kiểu áp dụng cho kiểu liệu lớp Giớ thiệ Giới thiệu chung Thực ra, vấn đề định nghĩa chồng toán tử đà có C, ví dơ biĨu thøc: a + b ký hiƯu + t theo kiĨu cđa a vµ b cã thĨ biĨu thị: phép cộng hai số nguyên, float phép cộng hai số thực độ xác đơn (float float) double phép cộng hai số thực xác đôi (double double) phép cộng số nguyên vào trỏ Trong C++, định nghĩa chồng hầu hết phép toán (một hai ngôi) lớp, nghĩa số toán hạng tham gia phép toán đối tượng Đây khả mạnh cho phép xây dựng lớp toán tử cần thiết, làm cho chương trình viết ngắn gọn dễ đọc có ý nghĩa Chẳng hạn, định nghĩa lớp complex để biểu diễn số phức, cã thĨ viÕt C++: a+b, a-b, a*b, a/b víi a,b đối tượng complex Để có điều này, ta định nghĩa chồng phép toán +, -, * / cách định nghĩa hoạt động phép toán giống định nghĩa hàm, khác là hàm toán tử (operator function) Hàm toán tử có tên ghép từ khoá operator ký hiệu phép toán tương ứng Bảng 4.1 đưa số ví dụ tên hàm toán tử Hàm toán tử dùng hàm thành phần lớp hàm tự do; hàm toán tử phải khai báo bạn lớp có đối tượng mà hàm thao tác -109- Định nghĩa toán tử lớp Tên hàm Dùng để operator+ operator định nghĩa phép + operator* operator định nghĩa phép nhân * operator/ operator định nghĩa phép chia / operator+= operator định nghĩa phép tự cộng += operator!= operator định nghĩa phép so sánh khác Bảng 4.1 Một số tên hàm toán tử quen thc VÝ dơ trªn líp sè phøc trª phø 2.1 Hàm toán tử hàm thành phần toá phầ Trong chương trình complex1.cpp toán tử + hai đối tượng complex định nghĩa hàm thành phần Hàm toán tử thành phần có tham số ngầm định đối tượng gọi hàm nên có mét tham sè têng minh VÝ dô 4.1 /*complex1.cpp*/ #include #include #include class complex { float real, image; public: complex(float r=0, float i =0) { real = r; image = i; } void display() { cout