Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 41 trang
THÔNG TIN TÀI LIỆU
Cấu trúc
Chương 2
Tài liệu đọc
Những nội dung chính
Giới thiệu
Giải thích thêm
Giải thích thêm (tt)
Slide 7
Slide 8
Các tóan tử của C++ (tt)
Các toán tử quá tải được và không quá tải được
Slide 11
Slide 12
Cú pháp quá tải toán tử
Cài đặt các toán tử được quá tải
Cài đặt các toán tử được quá tải (tt)
Cài đặt bằng hàm thành viên
Cài đặt bằng hàm không thành viên
Cài đặt bằng hàm bạn
Khi nào dùng hàm thành viên ?
Khi nào dùng hàm không thành viên toàn cục ?
Khi nào dùng hàm bạn ?
Slide 22
Slide 23
Slide 24
Ví dụ: Toán tử một ngôi (hàm thành viên)
Ví dụ: Toán tử tăng/giảm (hàm thành viên)
Ví dụ: Toán tử gán (=) (hàm thành viên)
Ví dụ: Toán tử gán (hàm thành viên)
Toán tử gán (=)
Ví dụ: Toán tử [] (hàm thành viên)
Ví dụ: Toán tử [] (hàm thành viên) (tt)
Toán tử []
Ví dụ: Toán tử gọi hàm () (hàm thành viên)
Ví dụ: Toán tử chuyển đổi kiểu (hàm thành viên)
Ví dụ: Toán tử 2 ngôi tính toán (hàm bạn)
Ví dụ: Toán tử 2 ngôi so sánh (hàm bạn)
Quá tải toán tử <<
Quá tải toán tử >>
Ví dụ: Quá tải toán tử << (hàm bạn)
Ví dụ: Quá tải toán tử >> (hàm bạn)
Slide 41
Nội dung
Chương QUÁ TẢI TOÁN TỬ Tài liệu đọc Eckel Bruce, Thinking in C++ 2rd edition 12 Operator Overloading Dietel, C++ How to Program 4th edition Chapter - Operator Overloading Những nội dung Giới thiệu Các tốn tử phép không phép tải (C++) Hạn chế tải toán tử Cú pháp tải toán tử Cài đặt tải toán tử Các ví dụ Giới thiệu Các tốn tử cho phép ta sử dụng cú pháp toán học kiểu liệu C++ thay gọi hàm (nhưng chất gọi hàm) Ví dụ thay a=set(b.add(c)) a=b+c Tự nhiên Đơn giản mã hóa chương trình Q tải tốn tử: tốn tử dùng cho nhiều kiểu liệu Giải thích thêm The interface for your class would likely be: class MyString { private: char string[ MAX_STRING ]; public: MyString(); MyString( const char* ); const char* getString(); MyString& setString( const char* ); MyString& appendString( const char* ); bool isEqualTo( const char* ); }; Giải thích thêm (tt) You could then write code like: void main() { MyString string1( "Hello" ); MyString string2( "Good bye" ); MyString string3; string3.setString( string1.getString() ); string3.appendString(" and ").appendString(string2.getString() ); if ( string1.isEqualTo( string2.getString() ) ) { cout