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 đủ
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:
bai_giang_lap_trinh_huong_doi_tuong_chuong_4_so_luoc_thu_vie.pdf

