Định nghĩa lại các thành viên lớp cơ sở trong một lớp dẫn xuất
Trang 1 trong tổng số 1 trang
Định nghĩa lại các thành viên lớp cơ sở trong một lớp dẫn xuất
Một lớp dẫn xuất có thể định nghĩa lại một hàm thành viên lớp cơ sở. Điều này được gọi là overriding. Khi hàm đó được đề cập bởi tên trong lớp dẫn xuất, phiên bản của lớp dẫn xuất được chọn một cách tự động. Toán tử định phạm vi có thể sử dụng để truy cập phiên bản của lớp cơ sở từ lớp dẫn xuất.
Ví dụ file code như sau:
file employ.h
File employ.cpp
File gio.h
File gio.cpp
File thithanh.cpp
Ví dụ file code như sau:
file employ.h
[You must be registered and logged in to see this link.]
//dinh nghi alop employ
#ifndef EMPLOY_H
#define EMPLOY_H
class Employee
{
private:
char *ho;
char *ten;
public:
Employee(const char *h, const char *t);
void Print() const;
~Employee();
};
#endif
File employ.cpp
[You must be registered and logged in to see this link.]
//dinh nghia cac ham thanh vien cua employee
#include
#include
#include
#include "employ.h"
Employee::Employee(const char *h, const char *t)
{
ho = new char[ strlen(h) 1 ];
assert(ho != 0);
strcpy(ho, h);
ten = new char[ strlen(t) 1 ];
assert(ten != 0);
strcpy(ten, t);
}
void Employee::Print() const
{
cout << ho << ' ' << ten;
}
Employee::~Employee()
{
delete [] ho;
delete [] ten;
}
File gio.h
//Dinh nghia gio lam viec cua moi cong nhan
#ifndef HOURLY_H
#define HOURLY_H
#include "employ.h"
class GioLV : public Employee
{
private:
float LuongMoiGio; //Tien luong trong moi gio
float GioMoiTuan; //So gio lam viec trong moi
//tuan
public:
GioLV(const char *ho, const char *ten, float SoGio,
float SoTien);
float TraLuong() const; // Tinh toan va tra luong
void Print() const; // Dinh nghia lai ham Print()
//cua lop co so
};
#endif
File gio.cpp
[You must be registered and logged in to see this link.]
//dinh nghia cac ham thanh vien cua lop GioLV
#include
#include
#include "gio.h"
GioLV::GioLV(const char *ho, const char *ten, float SoGio,
float SoTien) : Employee(ho, ten)
{
GioMoiTuan = SoGio;
LuongMoiGio = SoTien;
}
float GioLV::TraLuong() const
{
return LuongMoiGio*GioMoiTuan;
}
void GioLV::Print() const
{
//cout<<"Gio lam viec: "<<
cout<<"So tien: "<<<<
}
File thithanh.cpp
[You must be registered and logged in to see this link.]
#include
#include "gio.h"
void main()
{
GioLV H("Au","Dung",40.0, 8.5);
H.Print();
cout<<<"Nhan cong: "<
H.Employee::Print();
}
Similar topics
» Thắc mắc về 1 số định nghĩa trong Data Mining
» Ý nghĩa tên các nhân vật trong Naruto.
» Kỹ thuật phân lớp dữ liệu trong Data Mining
» Tìm hiểu cây 2 - 3 - 4
» sách tổng hợp
» Ý nghĩa tên các nhân vật trong Naruto.
» Kỹ thuật phân lớp dữ liệu trong Data Mining
» Tìm hiểu cây 2 - 3 - 4
» sách tổng hợp
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
|
|