Bài giảng lập trình hướng đối tượng dùng c + +chương 4 đa năng hoá toán tử

47 572 0
Bài giảng lập trình hướng đối tượng dùng c + +chương 4  đa năng hoá toán tử

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương Đa hoá toán tử TRẦN MINH THÁI Email: minhthai@itc.edu.vn Website: www.minhthai.edu.vn Cập nhật: 10 tháng 02 năm 2015 Nội dung #2 Giới thiệu Cách cài đặt & sử dụng đa hoá toán tử Một số kỹ thuật đa hoá toán tử đặc biệt Giới thiệu (1/3) #3 Đa hóa tốn tử khả C++ cho phép định nghĩa lại toán tử (+, -, *, / , …) kiểu liệu khác → Chương trình ngắn gọn, dễ đọc có ý nghĩa so với việc gọi hàm bình thường Đa hóa tốn tử cách định nghĩa hoạt động toán tử giống định nghĩa hàm → hàm toán tử Giới thiệu (2/3) #4 Cú pháp: type_name operator operator_symbol ( parameters_list ) { ……………… } Hàm tốn tử   Hàm tồn cục (hàm tự do) → hàm friend Hàm thành viên lớp (hàm non-static) → có thuộc tính truy xuất public Giới thiệu (3/3) #5 Khai báo Cú pháp gọi Hàm thành viên aa#bb Hàm toàn cục aa.operator#(bb) operator#(aa,bb) #aa aa.operator#() operator#(aa) aa# aa.operator#(int) operator#(aa,int) Với # ký hiệu dấu tốn tử Các lưu ý (1/) #6 Khơng thể định nghĩa toán tử Phần lớn toán tử đa hóa ngoại trừ tốn tử sau: * :: ?: typeid sizeof const_cast dynamic_cast reinterpret_cast Không thể đa hóa ký hiệu tiền xử lý Khơng thể thay đổi độ ưu tiên toán tử hay số tốn hạng static_cast Các lưu ý (2/) #7 Khơng thể thay đổi ý nghĩa tốn tử áp dụng kiểu cài sẵn Không dùng tham số có giá trị mặc định Các tốn tử: = [] () -> địi hỏi hàm tốn tử phải hàm thành viên Phải chủ động định nghĩa toán tử += -= *= /= dù định nghĩa + - * / Tham số (1/2) #8 Số lượng tham số hàm toán tử phụ thuộc: Toán tử ngơi hay hai ngơi Tốn tử khai báo hàm toàn cục hàm thành viên Tham số (2/2) #9 Nên sử dụng tham chiếu (đối tượng lớn) Luôn sử dụng tham số tham chiếu tham số không bị sửa đổi bool CComplex::operator == (const CComplex & c) const; Hàm thành viên nên khai báo hàm thành viên toán hạng khơng bị sửa đổi Các tốn tử tính toán/ so sánh  thường dùng tham chiếu Giá trị trả #10 Tuân thủ theo đặc điểm chung cài đặt có sẵn tốn tử Các phép so sánh (==, !=…) thường trả giá trị kiểu bool → phiên đa hóa nên trả bool Giá trị trả tham chiếu tuỳ theo ngữ cảnh Đa hoá toán tử new & delete (1/3) #33 Thay hẳn tốn tử  Hàm tồn cục Chỉ áp dụng cho đối tượng lớp  Hàm thành viên lớp Cú pháp  void * operator new(size_t size);  void operator delete(void * ptr); Đa hoá toán tử new & delete (2/3) void * operator new(size_t size) { #34 return malloc(size); Hàm toàn cục } void operator delete(void *ptr) { class CMyPoint free(ptr); { } int x, y; public: CMyPoint *p1,*p2; CMyPoint(int a=0,int b=0) p1 = new CMyPoint(10,20); { p2 = new CMyPoint(-10,-20); x=a; int *x=new int; y=b; *x=10; } cout

Ngày đăng: 04/09/2015, 15:28

Từ khóa liên quan

Mục lục

  • Slide 1

  • Nội dung

  • Giới thiệu (1/3)

  • Giới thiệu (2/3)

  • Giới thiệu (3/3)

  • Các lưu ý (1/)

  • Các lưu ý (2/)

  • Tham số (1/2)

  • Tham số (2/2)

  • Giá trị trả về

  • Ví dụ hàm toán tử thành viên (1/3)

  • Ví dụ hàm toán tử thành viên (2/3)

  • Ví dụ hàm toán tử thành viên (3/3)

  • Ví dụ hàm toán tử friend (1/5)

  • Ví dụ hàm toán tử friend (2/5)

  • Ví dụ hàm toán tử friend (3/5)

  • Ví dụ hàm toán tử friend (4/5)

  • Ví dụ hàm toán tử friend (5/5)

  • Ví dụ đa năng hoá toán tử 1 ngôi (1/2)

  • Ví dụ đa năng hoá toán tử 1 ngôi (2/2)

Tài liệu cùng người dùng

Tài liệu liên quan