Bài giảng Phương pháp lập trình hướng đối tượng - Chương 4: Hàm toán tử - Nguyễn Minh Huy

Hàm toán tꢀ  
GV. Nguyꢀn Minh Huy  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
1
Nꢆi dung  
ꢀ Khái niꢇm cơ bꢈn.  
ꢀ Các toán tꢉ đꢊc biꢇt.  
ꢀ Hàm Friend.  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
2
Nꢆi dung  
ꢀ Khái niꢁm cơ bꢂn.  
ꢀ Các toán tꢉ đꢊc biꢇt.  
ꢀ Hàm Friend.  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
3
Khái niꢇm cơ bꢈn  
ꢀ Sꢋ khác biꢇt giꢌa int và PhanSo?  
// Thao tác trên kiꢀu PhanSo  
// Thao tác trên kiꢀu int  
void main()  
{
void main()  
{
PhanSo p1, p2;  
Phanso p3 = p1.cong(p2);  
int a, b;  
int c = a + b;  
}
}
ꢀ Chương trình tìm min có gì sai?  
template <class T>  
void main()  
{
T timMin(T a, T b)  
{
int a, b;  
return (a < b) ? a : b;  
int c = timMin(a, b);  
}
PhanSo p1, p2;  
PhanSo p3 = timMin(p1, p2);  
}
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
4
Khái niꢇm cơ bꢈn  
ꢀ Hàm toán tꢉ:  
ꢀ Khái niꢇm:  
ꢁ Mꢆt hàm trong chương trình.  
ꢁ Có tên là ký hiꢇu toán tꢉ.  
ꢁ Khai báo: tꢍ khóa operator <toán tꢀ>.  
PhanSo operator +(const PhanSo &p1, const PhanSo &p2);  
ꢀ Công dꢎng:  
ꢁ Sꢉ dꢎng toán tꢉ trên kiꢏu ngưꢐi dùng đꢑnh nghĩa.  
PhanSo p3 = p1 + p2;  
ꢁ Đꢑnh nghĩa nhiꢒu cách thꢋc hiꢇn toán tꢉ (nꢓp chꢔng hàm).  
float opeartor +(const PhanSo &p, float so);  
float x = p1 + 3.14;  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
5
Khái niꢇm cơ bꢈn  
ꢀ Phân loꢓi hàm toán tꢉ:  
ꢀ Toán tꢉ đꢆc lꢁp:  
PhanSo operator +(const PhanSo &p1, const PhanSo &p2);  
ꢁ Không thuꢆc lꢂp nào.  
ꢁ Sꢃ lưꢄng tham sꢃ = ngôi toán tꢉ.  
ꢀ Toán tꢉ thuꢆc lꢂp:  
PhanSo PhanSo::operator +(const PhanSo &p);  
ꢁ Là phương thꢕc cꢖa lꢂp.  
ꢁ Sꢃ lưꢄng tham sꢃ = ngôi toán tꢉ ꢅ 1.  
ꢀ Cách sꢀ dꢃng 2 loꢄi là như nhau!!  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
6
Khái niꢇm cơ bꢈn  
ꢀ Nhꢌng toán tꢉ có thꢏ đꢑnh nghĩa lꢓi:  
Ngôi  
Nhóm  
Tăng giꢈm  
Dꢗu sꢃ hꢘc  
Logic  
Toán tꢀ  
1 Ngôi (Unary)  
++, ꢅꢅ  
+, ꢅ  
!, ~  
Con trꢙ  
*, &  
Ép kiꢏu  
int, float, double, ꢚ  
2 Ngôi (Binary) Sꢃ hꢘc  
+, ꢅ, *, /, %, +=, ꢅ=, *=, /=, %=  
So sánh  
Logic  
>, <, ==, >=, <=, !=  
&&, ||, &, |  
<<, >>  
=
Nhꢁp xuꢗt  
Gán  
Lꢗy chꢛ sꢃ mꢈng [ ]  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
7
Khái niꢇm cơ bꢈn  
ꢀ Nhꢌng toán tꢉ không thꢏ đꢑnh nghĩa lꢓi:  
Toán tꢀ  
Ý nghĩa  
Truy xuꢗt phꢜn tꢉ  
.
.*  
::  
Truy xuꢗt con trꢙ phꢜn tꢉ  
T
o
án tꢉ ::  
? :  
#
Toán tꢉ điꢒu kiꢇn  
Chꢛ thꢑ tiꢒn xꢉ lý  
Chꢛ thꢑ tiꢒn xꢉ lý  
# #  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
8
Khái niꢇm cơ bꢈn  
ꢀ Nhꢌng hꢓn chꢝ (4 không):  
ꢀ Không thꢏ tꢓo toán tꢉ mꢂi.  
ꢀ Không thꢏ đꢑnh nghĩa lꢓi toán tꢉ trên kiꢏu cơ bꢈn.  
ꢀ Không thꢏ thay đꢞi ngôi cꢖa toán tꢉ.  
ꢀ Không thꢏ thay đꢞi đꢆ ưu tiên cꢖa toán tꢉ.  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
9
Khái niꢇm cơ bꢈn  
ꢀ Dr. Guru khuyên:  
ꢀ Quy tꢟc đꢑnh nghĩa toán tꢉ:  
ꢁ Tên hàm: operator <tên toán tꢀ>.  
ꢁ Sꢃ lưꢄng tham sꢃ: ngôi toán tꢀ.  
ꢁ Kiꢏu tham sꢃ: kiꢅu toán hꢄng.  
ꢁ Kiꢏu trꢈ vꢒ: kꢆt quꢂ toán tꢀ.  
ꢀ Ví dꢎ:  
ꢀ Toán tꢉ > (lꢂp PhanSo).  
ꢀ Toán tꢉ [ ] (lꢂp Mang).  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
10  
Nꢆi dung  
ꢀ Khái niꢇm cơ bꢈn.  
ꢀ Các toán tꢀ đꢇc biꢁt.  
ꢀ Hàm Friend.  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
11  
Các toán tꢉ đꢊc biꢇt  
ꢀ Toán tꢉ gán (=, +=, ꢅ=, *=, /=, ꢚ):  
ꢀ Trang bꢑ toán tꢉ += cho lꢂp PhanSo.  
ꢀ Toán tꢉ += mꢗy ngôi?  
ꢀ Toán tꢉ += trꢈ vꢒ gì?  
PhanSo& PhanSo::operator +=( const PhanSo &p );  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
12  
Các toán tꢉ đꢊc biꢇt  
ꢀ Toán tăng giꢈm (++, ꢅꢅ):  
ꢀ Trang bꢑ toán tꢉ ++ cho lꢂp PhanSo.  
ꢀ Toán tꢉ ++ mꢗy ngôi?  
ꢀ Toán tꢉ ++ trꢈ vꢒ gì?  
ꢀ Phân biꢇt tiꢒn tꢃ, hꢁu tꢃ?  
PhanSo& PhanSo::operator ++( );  
// Tiꢒn tꢃ.  
// Hꢁu tꢃ, dùng tham sꢃ giꢈ.  
PhanSo& PhanSo::operator ++( int x );  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
13  
Nꢆi dung  
ꢀ Khái niꢇm cơ bꢈn.  
ꢀ Các toán tꢉ đꢊc biꢇt.  
ꢀ Hàm Friend.  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
14  
Hàm Friend  
ꢀ Xét toán tꢉ +:  
ꢀ Trang bꢑ toán tꢉ + cho lꢂp PhanSo.  
ꢀ Dùng toán tꢉ đꢆc lꢁp.  
PhanSo operator + ( const PhanSo &p1, const PhanSo &p2 );  
ꢀ Làm sao truy xuꢗt thành phꢜn private cꢖa lꢂp?  
ꢀ Xét toán tꢉ xuꢗt <<:  
ꢀ Trang bꢑ toán tꢉ << cho lꢂp PhanSo.  
PhanSo p( 1, 3 );  
cout << p;  
ꢀ Toán tꢉ << thuꢆc vꢒ lꢂp nào?  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
15  
Hàm Friend  
ꢀ Hàm Friend:  
ꢀ Hàm có thꢏ truy xuꢗt thành phꢜn private cꢖa lꢂp.  
ꢀ Cách sꢉ dꢎng:  
ꢁ Khai báo trong lꢂp: tꢍ khóa friend <chꢈ ký hàm>.  
ꢁ Cài đꢊt ngoài lꢂp: không có friend.  
class PhanSo  
{
friend ostream& operator <<(ostream &os, const PhanSo &p);  
};  
ostream& operator <<(ostream &os, const PhanSo &p)  
{
os << p.m_tu << “/” << p.m_mau << endl;  
return os;  
}
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
16  
Tóm tꢟt  
ꢀ Hàm toán tꢉ:  
ꢀ Hàm có tên là ký hiꢇu toán tꢉ.  
ꢀ Dùng đꢏ trang bꢑ toán tꢉ cho kiꢏu tꢋ đꢑnh nghĩa.  
ꢀ Có 2 loꢓi hàm toán tꢉ:  
ꢁ Toán tꢉ đꢆc lꢁp.  
ꢁ Toán tꢉ thuꢆc lꢂp.  
ꢀ Các toán tꢉ đꢊc biꢇt:  
ꢀ =, +=, ꢅ=, ++, ꢅꢅ.  
ꢀ Hàm Friend:  
ꢀ Hàm truy xuꢗt đưꢄc thành phꢜn cꢖa lꢂp.  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
17  
Bài tꢁp  
ꢀ Bài tꢁp 4.1:  
Trang bꢑ cho lꢂp phân sꢉ nhꢌng toán tꢉ sau:  
ꢀ Toán tꢉ sꢃ hꢘc: +, *.  
ꢀ Toán tꢉ so sánh: >, <, ==, >=, <=, !=.  
ꢀ Toán tꢉ gán: =, +=, *=.  
ꢀ
Toán tꢉ mꢆt ngôi: ++, ꢅꢅ (tăng, giꢈm 1 đơn vꢑ).  
ꢀ Toán tꢉ ép kiꢏu: (float), (int).  
ꢀ Toán tꢉ nhꢁp, xuꢗt: >>, <<.  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
18  
Bài tꢁp  
ꢀ Bài tꢁp 4.2:  
Trang bꢑ cho lꢂp đơn thꢊc nhꢌng toán tꢉ sau:  
ꢀ Toán tꢉ sꢃ hꢘc: + (cùng bꢁc), *.  
ꢀ Toán tꢉ so sánh: >, <, ==, >=, <=, !=.  
ꢀ Toán tꢉ gán: =, += (cùng bꢁc), *=.  
ꢀ
Toán tꢉ mꢆt ngôi:  
ꢁ ++, ꢅꢅ (tăng, giꢈm bꢁc).  
ꢁ ! (đꢓo hàm).  
ꢀ Toán tꢉ nhꢁp, xuꢗt: >>, <<.  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
19  
Bài tꢁp  
ꢀ Bài tꢁp 4.3:  
Trang bꢑ cho lꢂp mꢂng (phꢜn kiꢏu bꢗt kỳ) nhꢌng toán tꢉ sau:  
ꢀ Toán tꢉ gán: =.  
ꢀ Toán tꢉ truy xuꢗt phꢜn tꢉ: [ ].  
ꢀ Toán tꢉ ép kiꢏu: (T *) (ép vꢒ con trꢙ kiꢏu T).  
ꢀ
Toán tꢉ nhꢁp, xuꢗt: >>, <<.  
Phương pháp lꢁp trình hưꢂng đꢃi tưꢄng ꢅ GV. Nguyꢀn Minh Huy  
20  
Tải về để xem bản đầy đủ
pdf 24 trang myanh 27560 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phương pháp lập trình hướng đối tượng - Chương 4: Hàm toán tử - Nguyễn Minh Huy", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_phuong_phap_lap_trinh_huong_doi_tuong_chuong_4_ham.pdf