Em có đoạn code sau (trích từ một đề thi thực hành)
3 lớp Person, Teacher, Student:
trong đó, lớp Teacher và Student kế thừa từ lớp Person với từ khóa public
Khi Ctrl+F5, máy báo lỗi ngay tại dòng "p->TinhLuong(); " trong hàm main (error 2039: 'TinhLuong' is not a member of 'Person')
Vậy em cần sửa lại gì để chạy được mà không chỉnh sửa hàm main? Vì đề bài yêu cầu xây dựng các lớp để chạy được đoạn chương trình trên.
Code:
void main() { Teacher t; t.Nhap(); Student s; s.Nhap(); Person* p; p = &t; p->TinhLuong(); //báo lỗi p->Xuat(); p = &s; p->TinhDTB(); p->Xuat(); }
Code:
class Person { protected: char *hoten; long CMND; public: virtual void Nhap(); virtual void Xuat(); }; class Teacher : public Person { private: long LuongCB; int HeSo; long Luong; public: void Nhap(); void Xuat(); void TinhLuong(); }; class Student : public Person { private: float toan, tin, ********, DTB; public: void Nhap(); void Xuat(); void TinhDTB(); };
Khi Ctrl+F5, máy báo lỗi ngay tại dòng "p->TinhLuong(); " trong hàm main (error 2039: 'TinhLuong' is not a member of 'Person')
Vậy em cần sửa lại gì để chạy được mà không chỉnh sửa hàm main? Vì đề bài yêu cầu xây dựng các lớp để chạy được đoạn chương trình trên.
Comment