Chapter 8 - Inheritance
Chia sẻ bởi Vũ Xuân Vinh |
Ngày 26/04/2019 |
52
Chia sẻ tài liệu: Chapter 8 - Inheritance thuộc Công nghệ thông tin
Nội dung tài liệu:
NHÓM 16
INHERITANE
2
Nội dung trình bày
Định nghĩa, công dụng và cách khai báo .
Hàm khởi tạo .
Hàm hủy bỏ .
3
Định nghĩa và công dụng
Lập trình hướng đối tượng có hai đặc trưng cơ bản:
• Đóng gói dữ liệu, được thể hiện bằng cách dùng khái niệm lớp để biểu diễn đối tượng với
các thuộc tính private, chỉ cho phép bên ngoài truy nhập vào thông qua các phương thức
get/set.
• Dùng lại mã, thể hiện bằng việc thừa kế giữa các lớp. Việc thừa kế cho phép các lớp thừa
kế (gọi là lớp dẫn xuất) sử dụng lại các phương thức đã được định nghĩa trong các lớp gốc
(gọi là lớp cơ sở).
4
class: {
… // Khai báo các thành phần lớp
};
Khai báo thừa kế
Vì du:
class Bus: public Car{
… // Khai báo các thành phần
};
5
6
#include
#include
using namespace std;
class Nguoi {
private :
string hoten;
int tuoi;
string quequan;
public :
int n;
void nhapNguoi();
void xuatNguoi();
};
class HS : public Nguoi
{
private :
string lop;
string msv;
public :
void nhapHS();
void xuatHS();
};
class DS : public HS
{
private :
HS a[100];
public :
void nhapDS();
void xuatDS();
};
void Nguoi::nhapNguoi()
{
cout<<"Nhap ho ten :” ; cin>>hoten;
cout<<"Nhap tuoi :";
cin>>tuoi;
cout<<"Que quan : ";
cin>>quequan;
}
void Nguoi::xuatNguoi(){
cout<<"Ten : "<void HS::nhapHS(){
nhapNguoi();
n=5;
cout <<"gia tri cua n:" << n <<" ";
cout<<"Ban hoc lop : ";
cin>>lop;
cout<<"Ma sinh vien : ";
cin>>msv; }
void HS::xuatHS(){
xuatNguoi();
cout<<"Hien dang hoc lop : "<7
void DS::xuatDS(){
for(int i=0;i cout<<" Thong Tin Sinh Vien Thu"< a[i].xuatHS();
}
}
int main(){
DS m;
m.nhapDS();
m.xuatDS();
return 0;
}
void DS::nhapDS(){
cout<<"nhap so luong nguoi : ";
cin>>n; //Kế thừa từ lớp Nguoi
for(int i=0;i cout<<" Nhap Thong Tin Sinh Vien Thu "< a[i].nhapHS();
} }
8
Hàm khởi tạo
#include
class car{
private:
float speed ;
char *mark ;
float price ;
public:
char* getmark() ;
car() ;
car(float,char*,float) ;
} ;
car::car() {
speed=0; mark="ben"; price=0; }
car::car(float s,char *mark,float price){
speed=s;
car::mark = mark;
car::price = price; }
char* car::getmark(){
return mark; }
Khi khai báo một đối tượng có kiểu
lớp được dẫn xuất từ một lớp cơ sở
khác .Chương trình sẽ tự động gọi
tới hàm khởi tạo của lớp dẫn xuất .
9
class bus:public car{
private:
char* label ;
public:
bus();
bus(float);
};
bus::bus(float t):car(t,"ford",4000){ // danh sach doi so phu hop
cout < label=getmark ();
// car mycar // mycar.getmark()
cout << label<<" ";}
bus::bus(){
label=getmark();
cout <
INHERITANE
2
Nội dung trình bày
Định nghĩa, công dụng và cách khai báo .
Hàm khởi tạo .
Hàm hủy bỏ .
3
Định nghĩa và công dụng
Lập trình hướng đối tượng có hai đặc trưng cơ bản:
• Đóng gói dữ liệu, được thể hiện bằng cách dùng khái niệm lớp để biểu diễn đối tượng với
các thuộc tính private, chỉ cho phép bên ngoài truy nhập vào thông qua các phương thức
get/set.
• Dùng lại mã, thể hiện bằng việc thừa kế giữa các lớp. Việc thừa kế cho phép các lớp thừa
kế (gọi là lớp dẫn xuất) sử dụng lại các phương thức đã được định nghĩa trong các lớp gốc
(gọi là lớp cơ sở).
4
class
… // Khai báo các thành phần lớp
};
Khai báo thừa kế
Vì du:
class Bus: public Car{
… // Khai báo các thành phần
};
5
6
#include
#include
using namespace std;
class Nguoi {
private :
string hoten;
int tuoi;
string quequan;
public :
int n;
void nhapNguoi();
void xuatNguoi();
};
class HS : public Nguoi
{
private :
string lop;
string msv;
public :
void nhapHS();
void xuatHS();
};
class DS : public HS
{
private :
HS a[100];
public :
void nhapDS();
void xuatDS();
};
void Nguoi::nhapNguoi()
{
cout<<"Nhap ho ten :” ; cin>>hoten;
cout<<"Nhap tuoi :";
cin>>tuoi;
cout<<"Que quan : ";
cin>>quequan;
}
void Nguoi::xuatNguoi(){
cout<<"Ten : "<
nhapNguoi();
n=5;
cout <<"gia tri cua n:" << n <<" ";
cout<<"Ban hoc lop : ";
cin>>lop;
cout<<"Ma sinh vien : ";
cin>>msv; }
void HS::xuatHS(){
xuatNguoi();
cout<<"Hien dang hoc lop : "<
void DS::xuatDS(){
for(int i=0;i
}
}
int main(){
DS m;
m.nhapDS();
m.xuatDS();
return 0;
}
void DS::nhapDS(){
cout<<"nhap so luong nguoi : ";
cin>>n; //Kế thừa từ lớp Nguoi
for(int i=0;i
} }
8
Hàm khởi tạo
#include
class car{
private:
float speed ;
char *mark ;
float price ;
public:
char* getmark() ;
car() ;
car(float,char*,float) ;
} ;
car::car() {
speed=0; mark="ben"; price=0; }
car::car(float s,char *mark,float price){
speed=s;
car::mark = mark;
car::price = price; }
char* car::getmark(){
return mark; }
Khi khai báo một đối tượng có kiểu
lớp được dẫn xuất từ một lớp cơ sở
khác .Chương trình sẽ tự động gọi
tới hàm khởi tạo của lớp dẫn xuất .
9
class bus:public car{
private:
char* label ;
public:
bus();
bus(float);
};
bus::bus(float t):car(t,"ford",4000){ // danh sach doi so phu hop
cout <
// car mycar // mycar.getmark()
cout << label<<" ";}
bus::bus(){
label=getmark();
cout <
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Vũ Xuân Vinh
Dung lượng: |
Lượt tài: 3
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)