Bài giảng Lập trình hướng đối tượng - Tuần 5: Toán tử vào, ra - Nguyễn Khắc Huy

Nguyễn Khắc Huy  
10/2018  
BM Công Nghệ Phần Mềm  
Dẫn nhập  
□ Thư viện <stdio.h>  
int a; float b;  
printf(“Nhap gia tri:”);  
scanf(“%d”, &a); scanf(“%f”, &b);  
printf(“So nguyen vua nhap:%d, %f”, a, b);  
□ Thư viện <iostream>  
int a; float b;  
cout<<“Nhap gia tri: ”;  
cin >> a; cin >> b;  
cout << “Cac so vua nhap: ” << a << “,” << b;  
2
BM Công Nghệ Phần Mềm  
Dẫn nhập  
□ Khai báo lớp PhanSo  
class PhanSo  
{
int tu;  
int mau;  
public:  
void Nhap();  
void Xuat();  
};  
□ Khai báo lớp PhanSo  
PhanSo a;  
a.Nhap();  
a.Xuat();  
3
BM Công Nghệ Phần Mềm  
Dẫn nhập  
□ Nhập xuất với iostream  
CPhanSo a;  
cin >> a;  
cout << a;  
Làm sao?  
□ Ký hiệu >> được gọi là toán tử vào.  
□ Ký hiệu << được gọi là toán tử ra.  
4
BM Công Nghệ Phần Mềm  
Giải quyết vấn đề  
□ Định nghĩa  
o Toán tử vào (operator >>)  
o Toán tử ra (operator <<)  
cho lớp đối tượng PhanSo.  
5
BM Công Nghệ Phần Mềm  
Khai báo  
class PhanSo  
{
private:  
int tu;  
int mau;  
public:  
istream& operator >>(istream &is);  
ostream& operator <<(istream &os);  
};  
6
BM Công Nghệ Phần Mềm  
Vấn đề  
□ Sử dụng  
o a.operator >>(cin);  
o a.operator << (cout);  
hoặc  
o a >> cin;  
o a << cout;  
7
BM Công Nghệ Phần Mềm  
Vấn đề (tt.)  
□ Làm thế nào?  
o cin >> a;  
o cout << a;  
□ Bổ sung thêm phương thức vào lớp  
istream và ostream  
o class istream {  
istream& opertator >> (const PhanSo ps&);  
}
o class ostream {  
ostream& opertator >> (const PhanSo ps&);  
}
Giải quyết vấn đề  
□ Kết hợp sử dụng hàm friend  
□ “hàm friend” của lớp đối tượng được phép  
truy xuất đến tất cả các thành phần của  
đối tượng thuộc về lớp đó bất chấp thành  
phần được khai báo trong phạm vi nào  
9
BM Công Nghệ Phần Mềm  
Khai báo  
class PhanSo  
{
private:  
int tu;  
int mau;  
public:  
friend istream& operator >>(  
istream &is,PhanSo &x);  
friend ostream& operator <<(  
ostream &os,PhanSo &x);  
};  
10  
BM Công Nghệ Phần Mềm  
Định nghĩa  
□ Định nghĩa toán tử vào  
istream& operator >>(  
istream &is, PhanSo &x)  
{
cout << “Nhap tu”;  
is >> x.tu;  
Tại sao phải  
trả về 1 đối  
tượng thuộc  
lớp istream?  
cout << “Nhap mau”;  
is >> x.mau;  
return is;  
}
11  
BM Công Nghệ Phần Mềm  
Định nghĩa  
□ Định nghĩa toán tử ra  
ostream& operator <<(  
ostream &os, PhanSo &x)  
{
os<< x.tu<<“/”<<x.mau;  
return os;  
Tại sao phải  
trả về 1 đối  
}
tượng thuộc  
lớp ostream?  
12  
BM Công Nghệ Phần Mềm  
Sử dụng  
□ Xét đoạn chương trình sau:  
CPhanSo a;  
cin >> a;  
cout <<a ;  
□ Trong câu lệnh thứ hai của đoạn chương trình trên ta  
nói: hàm operator >> được gọi thực hiện với 2 đối số là  
cin và đối tượng a.  
□ Trong câu lệnh thứ ba của đoạn chương trình trên ta  
nói: hàm operator << được gọi thực hiện với 2 đối số là  
cout và đối tượng a.  
13  
BM Công Nghệ Phần Mềm  
Một ví dụ khác  
□ Toán tử 1 ngôi: prefix và postfix  
o x++  
o ++x  
□ Khai báo và sử dụng hai toán tử trên như  
thế nào?  
Lưu ý thêm  
□ Xét đoạn chương trình sau:  
CPhanSo a,b,c;  
cin >> a >> b >> c;  
cout << a << b << c;  
□ Trong câu lệnh thứ hai của đoạn chương  
trình trên ta nói: hàm operator >> được gọi  
thực hiện 3 lần.  
□ Trong câu lệnh thứ ba của đoạn chương  
trình trên ta nói: hàm operator << được gọi  
thực hiện 3 lần.  
15  
BM Công Nghệ Phần Mềm  
Demo  
□ Yêu cầu: Hãy định nghĩa toán tử vào và  
toán tử ra cho lớp đối tượng CNgay.  
16  
BM Công Nghệ Phần Mềm  
Bài tập  
□ Bài tập 4.1:  
Bổ sung vào lớp phân số những phương thức sau:  
(Nhóm tạo hủy)  
Khởi tạo mặc định phân số = 0.  
Khởi tạo với tử và mẫu cho trước.  
Khởi tạo với giá trị phân số cho trước.  
Khởi tạo từ một phân số khác.  
(Nhóm toán tử)  
Toán tử xử lý +, -, *, /  
Toán tử một ngôi: ++, --  
Toán tử nhập, xuất: >>, <<  
Toán tử so sánh >, <, ==, !=, >=, <=  
Bài tập  
□ Bài tập 4.2:  
Bổ sung vào lớp số phức những phương thức sau:  
(Nhóm tạo hủy)  
Khởi tạo mặc định số phức = 0.  
Khởi tạo với phần thực và phần ảo cho trước.  
Khởi tạo với giá trị thực cho trước.  
Khởi tạo từ một số phức khác.  
(Nhóm toán tử)  
Toán tử xử lý +, -, *, /  
Toán tử một ngôi: ++, --  
Toán tử gán =  
Toán tử nhập, xuất: >>, <<  
Toán tử so sánh >, <, ==, !=, >=, <=  
Bài tập  
□ Bài tập 4.3:  
Bổ sung vào lớp đơn thức những phương thức sau:  
(Nhóm tạo hủy)  
Khởi tạo mặc định đơn thức = 0.  
Khởi tạo với hệ số và số mũ cho trước.  
Khởi tạo với hệ số cho trước, số mũ = 0.  
Khởi tạo từ một đơn thức khác.  
(Nhóm toán tử)  
Toán tử xử lý +, -  
Toán tử gán =  
Toán tử một ngôi: ++, --.  
Toán tử nhập, xuất: >>, <<.  
Bài tập  
□ Bài tập 4.4:  
Bổ sung vào lớp học sinh những phương thức sau:  
(Nhóm tạo hủy)  
Khởi tạo với họ tên và điểm văn, toán cho trước.  
Khởi tạo với họ tên cho trước, điểm văn, toán = 0.  
Khởi tạo từ một học sinh khác.  
(Nhóm toán tử)  
Toán tử gán: =.  
Toán tử nhập, xuất: >>, <<.  
Toán tử so sánh >, <, ==, !=, >=, <=  
Tải về để xem bản đầy đủ
pdf 21 trang myanh 31620 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình hướng đối tượng - Tuần 5: Toán tử vào, ra - Nguyễn Khắc 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_lap_trinh_huong_doi_tuong_tuan_5_toan_tu_vao_ra_ng.pdf