Bài giảng Lập trình hướng đối tượng - Chương 4: Sơ lược thư viện iostream.h - Nguyễn Sơn Hoàng Quốc

Khoa CNTT  
LTHĐT  
Chƣơng 4  
SƠ LƢỢC THƢ VIỆN  
IOSTREAM.H  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 04 - 1  
Khoa CNTT  
LTHĐT  
1. VÍ DỤ DẪN NHẬP 1  
Bài toán: Viết lệnh nhập giá trị cho  
một số nguyên a và xuất số nguyên  
ra màn hình bằng cách sử dụng thư  
viện iostream.h  
Phong cách cũ  
1. int a;  
2. printf(“Nhap mot so nguyen:”);  
3. scanf(“%d”,&a);  
4. printf(“So nguyen vua nhap:%d”,a);  
Đoạn chương trình với thư viện  
iostream.h  
1. int a;  
2. cout<<“Nhap mot so nguyen: ”;  
3. cin>>a;  
4. cout<<“So nguyen vua nhap:”<<a;  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 04 - 2  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
2. VÍ DỤ DẪN NHẬP 2  
Bài toán: Viết hàm nhập thông  
tin của một phân số bằng cách  
sử dụng thư viện iostream.h  
Cấu trúc dữ liệu  
1. struct phanso  
2. {  
3.  
int tu;  
4.  
int mau;  
5. };  
6. typedef struct phanso  
PHANSO;  
Định nghĩa hàm  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 04 - 3  
Khoa CNTT  
LTHĐT  
2. VÍ DỤ DẪN NHẬP 2 (tiếp)  
Định nghĩa hàm  
11.void Nhap(PHANSO &x)  
12.{  
13.  
cout<<“Nhap tu:”;  
cin>>x.tu;  
14.  
15.  
cout<<“Nhap mau:”;  
cin>>x.mau;  
16.  
17.}  
18.void Xuat(PHANSO x)  
19.{  
20.  
cout<<x.tu<<“/”<<x.mau;  
21.}  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 04 - 4  
Khoa CNTT  
LTHĐT  
3. ĐẶT VẤN ĐỀ  
Nhập xuất một đối tượng phân số  
1. CPhanSo a;  
2. a.Nhap();  
3. a.Xuat();  
Nhập, xuất một đối tượng phân số với  
thư viện iostream.h  
1. CPhanSo a;  
2. cin>>a;  
Làm sao?  
3. cout<<a;  
Lưu ý  
Ký hiệu >> được gọi là toán tử vào.  
Ký hiệu << được gọi là toán tử ra.  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 04 - 5  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
4. GIẢI QUYẾT VẤN ĐỀ  
Để giải quyết vấn đề trên ta phải định  
nghĩa  
Toán tử vào (operator>>)  
Toán tử ra (operator <<)  
cho lớp đối tượng CPhanSo.  
Ngoài ra, trong khi giải quyết vấn đề  
này ta còn sử dụng kỹ thuật hàm bạn  
(friend function) của phương pháp lập  
trình hướng đối tượng.  
Một “hàm bạn” 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.  
GV. Nguyễn Sơn Hoàng Quốc  
Chương 04 - 6  
ThS. Nguyễn Tấn Trần Minh Khang  
Khoa CNTT  
LTHĐT  
4. GIẢI QUYẾT VẤN ĐỀ (tiếp)  
Khai báo lớp  
11. class CPhanSo  
12. {  
13.  
private:  
int tu;  
int mau;  
public:  
14.  
15.  
16.  
17.  
friend istream& operator >>  
(istream &is,CPhanSo &x);  
friend ostream& operator <<  
(ostream &os,CPhanSo &x);  
18.  
19.  
20.  
21. };  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 04 - 7  
Khoa CNTT  
LTHĐT  
4. GIẢI QUYẾT VẤN ĐỀ (tiếp)  
Khai báo lớp  
11. class CPhanSo  
12. {  
13.  
private:  
int tu;  
int mau;  
public:  
14.  
15.  
16.  
17.  
friend istream& operator >>  
(istream &is,CPhanSo &x);  
friend ostream& operator <<  
(ostream &os,CPhanSo &x);  
18.  
19.  
20.  
21. };  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 04 - 8  
Khoa CNTT  
LTHĐT  
4. GIẢI QUYẾT VẤN ĐỀ (tiếp)  
Khai báo lớp  
11. class CPhanSo  
12. {  
13.  
private:  
int tu;  
int mau;  
public:  
14.  
15.  
16.  
17.  
friend istream& operator >>  
(istream &is,CPhanSo &x);  
friend ostream& operator <<  
(ostream &os,CPhanSo &x);  
18.  
19.  
20.  
21. };  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 04 - 9  
Khoa CNTT  
LTHĐT  
4. GIẢI QUYẾT VẤN ĐỀ (tiếp)  
Khai báo lớp  
11. class CPhanSo  
12. {  
13.  
private:  
int tu;  
int mau;  
public:  
14.  
15.  
16.  
17.  
friend istream& operator >>  
(istream &is,CPhanSo &x);  
friend ostream& operator <<  
(ostream &os,CPhanSo &x);  
18.  
19.  
20.  
21. };  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 04 - 10  
Khoa CNTT  
LTHĐT  
4. GIẢI QUYẾT VẤN ĐỀ (tiếp)  
Khai báo lớp  
11. class CPhanSo  
12. {  
13.  
private:  
int tu;  
int mau;  
public:  
14.  
15.  
16.  
17.  
friend istream& operator >>  
(istream &is,CPhanSo &x);  
friend ostream& operator <<  
(ostream &os,CPhanSo &x);  
18.  
19.  
20.  
21. };  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 04 - 11  
Khoa CNTT  
LTHĐT  
4. GIẢI QUYẾT VẤN ĐỀ (tiếp)  
Khai báo lớp  
11. class CPhanSo  
12. {  
13.  
private:  
int tu;  
int mau;  
public:  
14.  
15.  
16.  
17.  
friend istream& operator >>  
(istream &is,CPhanSo &x);  
friend ostream& operator <<  
(ostream &os,CPhanSo &x);  
18.  
19.  
20.  
21. };  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 04 - 12  
Khoa CNTT  
LTHĐT  
4. GIẢI QUYẾT VẤN ĐỀ (tiếp)  
Khai báo lớp  
11. class CPhanSo  
12. {  
13.  
private:  
int tu;  
int mau;  
public:  
14.  
15.  
16.  
17.  
friend istream& operator >>  
(istream &is,CPhanSo &x);  
friend ostream& operator <<  
(ostream &os,CPhanSo &x);  
18.  
19.  
20.  
21. };  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 04 - 13  
Khoa CNTT  
LTHĐT  
4. GIẢI QUYẾT VẤN ĐỀ (tiếp)  
Khai báo lớp  
11. class CPhanSo  
12. {  
13.  
private:  
int tu;  
int mau;  
public:  
14.  
15.  
16.  
17.  
friend istream& operator >>  
(istream &is,CPhanSo &x);  
friend ostream& operator <<  
(ostream &os,CPhanSo &x);  
18.  
19.  
20.  
21. };  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 04 - 14  
Khoa CNTT  
LTHĐT  
4. GIẢI QUYẾT VẤN ĐỀ (tiếp)  
Khai báo lớp  
11. class CPhanSo  
12. {  
13.  
private:  
int tu;  
int mau;  
public:  
14.  
15.  
16.  
17.  
friend istream& operator >>  
(istream &is,CPhanSo &x);  
friend ostream& operator <<  
(ostream &os,CPhanSo &x);  
18.  
19.  
20.  
21. };  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 04 - 15  
Khoa CNTT  
LTHĐT  
4. GIẢI QUYẾT VẤN ĐỀ (tiếp)  
Khai báo lớp  
11. class CPhanSo  
12. {  
13.  
private:  
int tu;  
int mau;  
public:  
14.  
15.  
16.  
17.  
friend istream& operator >>  
(istream &is,CPhanSo &x);  
friend ostream& operator <<  
(ostream &os,CPhanSo &x);  
18.  
19.  
20.  
21. };  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 04 - 16  
Khoa CNTT  
LTHĐT  
4. GIẢI QUYẾT VẤN ĐỀ (tiếp)  
Khai báo lớp  
11. class CPhanSo  
12. {  
13.  
private:  
int tu;  
int mau;  
public:  
14.  
15.  
16.  
17.  
friend istream& operator >>  
(istream &is,CPhanSo &x);  
friend ostream& operator <<  
(ostream &os,CPhanSo &x);  
18.  
19.  
20.  
21. };  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 04 - 17  
Khoa CNTT  
LTHĐT  
4. GIẢI QUYẾT VẤN ĐỀ (tiếp)  
Định nghĩa toán tử vào  
1. istream& operator >>(istream &is,  
CPhanSo &x)  
2. {  
3.  
cout << “Nhap tu”;  
is >> x.tu;  
4.  
5.  
cout << “Nhap mau”;  
is >> x.mau;  
6.  
7.  
return is;  
8. }  
Tại sao phải trả về một đối  
GV. N
tượng thuộc lớp istream?
ThS. N
Khoa CNTT  
LTHĐT  
4. GIẢI QUYẾT VẤN ĐỀ (tiếp)  
Khai báo lớp  
11. class CPhanSo  
12. {  
13.  
private:  
int tu;  
int mau;  
public:  
14.  
15.  
16.  
17.  
friend istream& operator >>  
(istream &is,CPhanSo &x);  
friend ostream& operator <<  
(ostream &os,CPhanSo &x);  
18.  
19.  
20.  
21. };  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 04 - 19  
Khoa CNTT  
LTHĐT  
4. GIẢI QUYẾT VẤN ĐỀ (tiếp)  
Định nghĩa toán tử ra  
1. ostream& operator <<(ostream &os,  
CPhanSo &x)  
2. {  
3.  
4.  
os<< x.tu<<“/”<<x.mau;  
return os;  
5. }  
Tại sao phải trả về một đối  
tượng thuộc lớp ostream?  
GV. Nguyễn Sơn Hoàng Quốc  
ThS. Nguyễn Tấn Trần Minh Khang  
Chương 04 - 20  
Tải về để xem bản đầy đủ
pdf 28 trang myanh 26500 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 - Chương 4: Sơ lược thư viện iostream.h - Nguyễn Sơn Hoàng Quốc", để 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_chuong_4_so_luoc_thu_vie.pdf