Tải bản đầy đủ (.ppt) (27 trang)

lập trình C++ - Quá tải

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (174.33 KB, 27 trang )

1
L p trình C++ 1ậ
© Giáo viên: Trần Minh Tuấn

Tham khảo thêm slide của GV Mai Thuý Nga
2
Bài 3: Quá t iả
1. Xây dựng chương trình từng bước
2. Quá tải hàm
3. Quá tải phương thức
4. Quá tải toán tử
5. Review
6. Bài tập
3
Chú ý khi xây d ng ch ng ự ươ
trình

Xây dựng các lớp từ đơn giản đến phức tạp.

Sau khi cài đặt xong một phương thức cần kiểm
tra tính đúng đắn của phương thức đó trước khi
thêm các phương thức khác.

Bài toán: Xây dựng lớp Phân số

Một phân số gồm tử số và mẫu số.

Có thể rút gọn phân số, cộng 2 phân số...
4
L p Phân s c b n ớ ố ơ ả


Xây dựng lớp Phân số cơ bản:

class Phanso

{

private:

int tuso; // tử số

int mauso; // mẫu số

public:

void DatTS(int ts); // đặt giá trị cho tử số

void DatMS(int ms); // đặt giá trị cho mẫu số

int LayTS(); // lấy giá trị tử số

int LayMS(); // lấy giá trị mẫu số

void InPS(); // in phân số dưới dạng a/b

};
5
L p Phân s c b n ớ ố ơ ả

Sau khi cài đặt xong lớp Phanso, kiểm tra lớp
này:


void main()

{

Phanso x;

x.DatTS(3);

x.DatMS(5);

cout<<“Phan so x co tu so la ”<<x.LayTS()

<<“ va mau so la “<<x.LayMS()<<endl;

cout<<“Phan so nay co dang : “;

x.InPS();

}
6
Thêm c u tấ ử

Thêm các cấu tử:

Phanso(); // cấu tử mặc định, đặt phân số 1/1

Phanso(int a); // đặt phân số a/1

Phanso(int a, int b); // đặt phân số a/b


Phanso(Phanso &ps); // cấu tử sao chép

Kiểm tra:

void main()

{

Phanso x, y(5), z(2,7), k(y);

...

}
7
Thêm ph ng th c Rút g nươ ứ ọ

Ta cần xây dựng hàm tìm ước số chung lớn
nhất. Nên để hàm này là public hay private ?

Xây dựng phương thức Rút gọn phân số sử
dụng hàm tìm USCLN ở trên

class Phanso

{

private:




int USCLN();

public:

...

Phanso Rutgon();

};
8
Thêm ph ng th c Rút g nươ ứ ọ

Kiểm tra:

void main()

{

Phanso x(6,3), y(5,8), z;

x.InPS(); z = x.Rutgon(); z.InPS();

y.InPS(); z = y.Rutgon(); z.InPS();

}
9
Thêm ph ng th c C ngươ ứ ộ

Xây dựng phương thức cộng 2 phân số


class Phanso

{

public:

...

Phanso Cong(Phanso ps);

};

Kiểm tra:

Phanso x(3,6), y(2,5), z;

z = x.Cong(y);

z = z.Rutgon();

cout<<“Tong cua ”; x.InPS();

cout<<“ va “; y.InPS();

cout<<“ la “; z.InPS();
10
V n đ v i l p Phansoấ ề ớ ớ

Lớp Phanso đã xây dựng là tương đối hoàn

chỉnh, tuy nhiên nó có hạn chế sau:

Phương thức Cong không được “tự nhiên”. Sẽ thuận
tiện hơn nếu ta có thể viết z = x + y.

Giải pháp: Sử dụng quá tải !

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×