em muốn tạo 1 danh sách sv gồm sv ưu tiên và sv thường. pro nào có thể chữa theo cách của em đang viết với ạ
#include<iostream>
using namespace std;
class sv{
int msv;
string ten;
float d1,d2,d3;
public:
friend istream &operator >>(istream &is, sv &x);
friend ostream &operator <<(ostream &os, sv &x);
friend class dssv;
virtual float tongdiem()
{
return d1+d2+d3;
}
};
ostream &operator<<(ostream &os, sv &x)
{
os<<"ten: "<<x.ten<<endl<<"msv: "<<x.msv<<endl<<"tong diem"<<x.tongdiem();
return os;
}
istream &operator>>(istream &is, sv &x)
{
cout<<"nhap ten: ";
fflush(stdin);
getline(is,x.ten,'\n');
cout<<endl<<"msv: ";
is>>x.msv;
cout<<"d1: ";
is>>x.d1;
cout<<endl<<"d2: ";
is>>x.d2;
cout<<endl<<"d3: ";
is>>x.d3;
}
class svut: public sv{
float dut;
public:
float tongdiem()
{
return sv::tongdiem()+ dut;
}
friend istream &operator >>(istream &is, svut &x);
friend ostream &operator <<(ostream &os, svut &x);
friend class dssv;
};
istream &operator >>(istream &is, svut &x)
{
is>>(sv&)x;// nhap nhu la sinh vien
cout<<"nhap dut";
is>>x.dut;
return is;
}
ostream &operator <<(ostream &os, svut &x){
os<<(sv&)x;
return os;
os<<"tong diem"<<x.tongdiem();
}
class dssv{
int spt;
sv **a;
public:
friend istream &operator >>(istream &is, dssv &x);
friend ostream &operator <<(ostream &os, dssv &x);
};
istream &operator >>(istream &is, dssv &x)
{
cout<<"nhap spt"<<endl;
is>>x.spt;
for(int i=0;i<spt;i++)
{
int a=0;
cout<<"ban nhap sv loai gi a=1- sv, a =2 - svut ";
is>>a;
if(a==1) a[i]=new sv();
else a[i]=new svut();
a[i]->nhap();
}
}
main()
{
dssv a;
cin>>a;
cout<<a;
}

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