Danh mục

Bài giảng Lập trình hướng đối tượng: Chương 10 - Trường Đại học Ngoại ngữ - Tin học, TP.HCM

Số trang: 31      Loại file: pdf      Dung lượng: 1.18 MB      Lượt xem: 14      Lượt tải: 0    
tailieu_vip

Xem trước 4 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng Lập trình hướng đối tượng: Chương 10 Operator overloading, cung cấp cho người đọc những kiến thức như: Đặt vấn đề; Operator overloading; Khai báo hàm cho Operator overloading; Các toán tử chuyển đổi;...Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình hướng đối tượng: Chương 10 - Trường Đại học Ngoại ngữ - Tin học, TP.HCM CHƯƠNG 10: Click to edit Master subtitle style Operator overloading Khoa Công nghệ thông tin Trường Đại học Ngoại ngữ - Tin học, TP.HCM 1 NỘI DUNG Đặt vấn đề Operator overloading Operator Overloading Toán tử 2 ngôi Toán tử 1 ngôi Hỗn hợp Toán tử so sánh Khai báo hàm cho Operator overloading Các toán tử chuyển đổi Tóm tắt 2 ĐẶT VẤN ĐỀ Đặt vấn đề Mục tiêu khi thiết kế ngôn ngữ C# là các lớp tự tạo (user-defined class) bởi người dùng sẽ có tất cả các chức năng của các kiểu dữ liệu có sẵn (built-in type). 4 Đặt vấn đề class Vector Ví dụ: { public double X { get; set; } public double Y { get; set; } public Vector(double x, double y) { X = x; Y = y; } Cộng 2 vector public static Vector Add(Vector a, Vector b) { return new Vector(a.X + b.X, a.Y + b.Y); } } Có thể Gọi hàm Vector v1 = new Vector (1.0, 2.0); viết ???? Vector v1 = new Vector (1.0, 2.0); Vector v2 = new Vector (3.0,4.0); Vector v2 = new Vector (3.0,4.0); cộng 2 vector Vector kq = Vector.Add(v1, v2); Vector kq = v1 + v2; Operator Overloading 5 OPERATOR OVERLOADING Operator overloading Operator overloading Toán tử 2 ngôi Toán tử 1 ngôi Hỗn hợp Toán tử so sánh 7 Operator overloading Operator overloading Toán tử 2 ngôi Toán tử 1 ngôi Hỗn hợp Toán tử so sánh 8 Operator overloading Operator overloading bao gồm: Từ khoá operator Các toán hạng (operand) • Ví dụ: +, -, *, /, >, Operator overloading class Vector { public double X { get; set; } public double Y { get; set; } public Vector(double x, double y) { X = x; Y = y; } Overload + public static Vector operator + (Vector a, Vector b) { return new Vector(a.X + b.X, a.Y + b.Y); } } Vector v1 = new Vector (1.0, 2.0); Vector v2 = new Vector (3.0,4.0); Sử dụng operator + Vector kq = v1 + v2; 10 Operator overloading Ưu điểm của Operator overloading: Viết code ngắn gọn hơn Code dễ đọc hơn Vận dụng được các kiến thức về toán tử số học (+, - , *, /, >, Operator overloading Operator overloading Toán tử 2 ngôi Toán tử 1 ngôi Hỗn hợp Toán tử so sánh 12 Toán tử hai ngôi (binary operator) class Vector { Ví dụ: public double X { get; set; } public double Y { get; set; } public Vector(double x, double y) { X = x; Y = y; } public static Vector operator + (Vector a, Vector b) Toán tử 2 ngôi + { return new Vector(a.X + b.X, a.Y + b.Y); } Toán tử 2 ngôi - public static Vector operator - (Vector a, Vector b) { return new Vector(a.X - b.X, a.Y - b.Y); } } Vector v1 = new Vector (1.0, 2.0); Vector v2 = new Vector (3.0,4.0); Sử dụng operator overloading Vector v3 = v1 + v2; Vector v4 = v1 - v2; 13 Operator overloading Operator overloading Toán tử 2 ngôi Toán tử 1 ngôi Hỗn hợp Toán tử so sánh 14 Toán tử một ngôi (unary operator) Ví dụ: class Vector { public double X { get; set; } public double Y { get; set; } public Vector(double x, double y) { X = x; Y = y; } Toán tử 1 ngôi + public static Vector operator + (Vector a) { return new Vector(a.X , a.Y); } Toán tử 1 ngôi - public static Vector operator - (Vector a) { return new Vector(-a.X ,- a.Y); } } 15 Operator ov ...

Tài liệu được xem nhiều: