Em xin chào mọi người. Em có 1 thắc mắc là em muốn ở hàm nạp chồng toán tử nhập của class rauQua có nhập cả những thông tin có trong hàm nạp chồng toán tử nhập của class sanPham thì em phải làm thế nào ạ?
#include <iostream>
#include <vector>
using namespace std;
class sanPham {
protected:
string ten;
float gia;
public:
friend istream& operator>>(istream &in, sanPham &sp);
friend ostream& operator<<(ostream &out, sanPham sp);
};
class rauQua:public sanPham {
private:
float cannang;
public:
friend istream& operator>>(istream &in, rauQua &rq);
friend ostream& operator<<(ostream &out, rauQua rq);
float thanhtoan() {
return gia*cannang;
}
};
istream& operator>>(istream &in, sanPham &sp)
{
cout<<"Nhap ten SP: "; getline(in, sp.ten);
cout<<"Nhap gia SP: "; in>>sp.gia;
return in;
}
ostream& operator<<(ostream &out, sanPham sp)
{
out<<"\nTen SP: "<<sp.ten;
out<<"\nGia SP: "<<sp.gia;
return out;
}
istream& operator>>(istream &in, rauQua &rq)
{
cout<<"Nhap can nang: "; in>>rq.cannang;
return in;
}
ostream& operator<<(ostream &out, rauQua rq)
{
out<<"\nCan nang: "<<rq.cannang;
return out;
}
int main() {
char t;
int count = 0;
rauQua *arr = new rauQua[10];
while (t!='n' || count == 10)
{
cout<<"Nhap thong tin SP:"<<endl;
cin>>arr[count];
count += 1;
if(count == 10) break;
cout<<"Nhap tiep (y/n): "; cin>>t;
if (t=='n') break;
cin.ignore();
}
float max = 0;
for(int i=0; i<count;i++)
{
if(arr[i].thanhtoan() > max) max = arr[i].thanhtoan();
}
cout<<"Cac san pham thanh toan nhieu nhat: "<<endl;
for(int i=0;i<count;i++)
{
if(arr[i].thanhtoan() == max)
{
cout<<arr[i];
}
}
return 0;
}