Đang chuẩn bị liên kết để tải về tài liệu:
Lecture Object oriented programming - Lecture no 10

Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ

This section repeats the above two sections using a fmmal mathematical style. Its purpose is to illustrate the power of denotational semantics to enable the full specification of a programming languages type system and semantics. Since it is machine independent, this notation can be used by language and compiler designers as they define and implement new programming languages. | CSC241: Object Oriented Programming Lecture No 10 Previous Lecture Example : Distance class overloading ++ and – ++ add 1 in feet and 1 in inches, -- subtract 1 from feet and 1 from inches Prefix and postfix Overloading binary operator Distance operator + (Distance d2) { float i = inches + d2.inches; int f = feet + d2.feet; return Distance(f, i); } d3= d1+d2; Today’s Lecture Overloading binary operator +, – and = operator for ThreeD class < operator for distance class += operator for distance class Subscript operator [] for Safe array class Data conversion Overloading -, + and = binary Operators class ThreeD { int x, y, z; public: ThreeD() { x = y = z = 0; } ThreeD(int i, int j, int k) { x = i; y = j; z = k; } ThreeD operator+(ThreeD op2); ThreeD operator=(ThreeD op2); ThreeD operator-(ThreeD op2); void show() ; }; // Overload subtraction. ThreeD ThreeD::operator-(ThreeD op2) { ThreeD temp; temp.x = x - op2.x; temp.y = y - op2.y; . | CSC241: Object Oriented Programming Lecture No 10 Previous Lecture Example : Distance class overloading ++ and – ++ add 1 in feet and 1 in inches, -- subtract 1 from feet and 1 from inches Prefix and postfix Overloading binary operator Distance operator + (Distance d2) { float i = inches + d2.inches; int f = feet + d2.feet; return Distance(f, i); } d3= d1+d2; Today’s Lecture Overloading binary operator +, – and = operator for ThreeD class < operator for distance class += operator for distance class Subscript operator [] for Safe array class Data conversion Overloading -, + and = binary Operators class ThreeD { int x, y, z; public: ThreeD() { x = y = z = 0; } ThreeD(int i, int j, int k) { x = i; y = j; z = k; } ThreeD operator+(ThreeD op2); ThreeD operator=(ThreeD op2); ThreeD operator-(ThreeD op2); void show() ; }; // Overload subtraction. ThreeD ThreeD::operator-(ThreeD op2) { ThreeD temp; temp.x = x - op2.x; temp.y = y - op2.y; temp.z = z - op2.z; return temp; } // Overload +. ThreeD ThreeD::operator+(ThreeD op2) { ThreeD temp; temp.x = x + op2.x; temp.y = y + op2.x; temp.z = z + op2.z; return temp; } Cont. // Overload assignment. ThreeD ThreeD::operator=(ThreeD op2){ x = op2.x; y = op2.y; z = op2.z; return *this; } void ThreeD::show() { cout << x << ", ”<< y << ", ”<< z << "\n"; } main() { ThreeD a(1, 2, 3), b(10, 10, 10), c; cout << "Original value of a: "; a.show(); cout << "Original value of b: "; b.show(); c = b - a; cout << “b - a: "; c.show(); } PROGRAM OUTPUT: Original value of a: 1, 2, 3 Original value of b: 10, 10, 10 b - a: 9, 8, 7 Multiple Overloading We’ve seen different uses of the + operator: to add distances and to concatenate strings. You could put both these classes together in the same program, and C++ would still know how to interpret the + operator: d1 = d2 + d3; s1 = s2 + s3; It selects the correct function to carry

TAILIEUCHUNG - Chia sẻ tài liệu không giới hạn
Địa chỉ : 444 Hoang Hoa Tham, Hanoi, Viet Nam
Website : tailieuchung.com
Email : tailieuchung20@gmail.com
Tailieuchung.com là thư viện tài liệu trực tuyến, nơi chia sẽ trao đổi hàng triệu tài liệu như luận văn đồ án, sách, giáo trình, đề thi.
Chúng tôi không chịu trách nhiệm liên quan đến các vấn đề bản quyền nội dung tài liệu được thành viên tự nguyện đăng tải lên, nếu phát hiện thấy tài liệu xấu hoặc tài liệu có bản quyền xin hãy email cho chúng tôi.
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.