Lỗi thừa kế c++

Mọi người cho em hỏi chương trình của em bị sao mà lúc chạy file nó không new kiểu nhân viên(chinhthuc, thoivu), mà nó chỉ hiển thị nhập và xuất của lớp cha (nhanvien) . Em thử thay ở hàm main kiểu chinhthuc và thời vụ thì 2 cái đó vẫn hiện bình thường. Em cảm ơn.

// .h
#pragma once


class danhsachnhanvien
{
private: nhanvien **a;
		 int n;

public:
	danhsachnhanvien();
	~danhsachnhanvien();
	void nhap();
	void xuat();
	void luonglonnhat();
};

.cpp

#include "pch.h"
#include"nhanvien.h"
#include "danhsachnhanvien.h"
#include"thoivu.h"
#include"chinhthuc.h"


danhsachnhanvien::danhsachnhanvien()
{
}


danhsachnhanvien::~danhsachnhanvien()
{
}

void danhsachnhanvien::nhap()
{
	cout << "\nnhap so nhan vien: ";
	cin >> n;
	a = new nhanvien *[n];
	for (int i = 0; i < n; i++) {
		int check;
		cout << "Moi chon kieu nhan vien(1.chinh thuc,  2. thoi vu";
		cin >> check;
		switch (check) {
		case 1: a[i] = new chinhthuc; break;
		case 2: a[i] = new thoivu; break;
		}
		a[i]->nhap();
	}
}

	void danhsachnhanvien::xuat()
	{
		for (int i = 0; i < n; i++) {
			cout << "\nNhan vien " << i + 1 << ": ";
			a[i]->xuat();
		}
	}

Phải dùng hàm ảo rồi :slight_smile:

1 Like

là dùng trừu tượng ạ?

mình thấy trong file h của bạn còn thiếu khai báo “class nhanvien;” , hãy thử đặt nó dưới “#pragma once”

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?