01/10/2018, 15:35

Lỗi đoạn nạp chồng nhập xuất

mình có làm bài tập như sau, nhưng không biết sai chỗ nào.Nhờ các bạn chỉ giúp.
Thấy toàn báo lỗi phần Date::>>() trong lớp PN.

#include <iostream>
#include <string>
#include <iomanip>
using namespace std;

class Date
{
	public:
		int Ngay, Thang, Nam;
		static int dem;
		
      friend istream &operator>>( istream  &input, Date &D )
      { cout<<"nhap ngay thang nam: ";
         input >> D.Ngay >> D.Thang>>D.Nam;
         return input;            
      }
       friend ostream &operator<<( ostream &output, Date D )
      { 
         output << D.Ngay <<"/"<<D.Thang<<"/"<<D.Nam;
         return output;            
      }
};
class PN:public Date
{
		
	public:
		string Ten, NgayNhap;
		int Sl;
		
		friend istream &operator>>( istream  &input, PN &P )
      { 
      	Date::>>();
         cin.ignore();
		 cout<<"Ten Mat Hang: ";getline(input, Ten);
		cout<<"Ngay Nhap: ";getline(input, NgayNhap);
		cout<<"So luong: ";input>>Sl;
         return input;            
      }
       friend ostream &operator<<( ostream &output, PN P )
      { 
    	Date::<<();
         output<<setw(20)<<Ten<<setw(20)<<NgayNhap<<setw(10)<<Sl<<endl;
         return output;            
      }
};
int Date::dem=1;

int main()
{
	PN P[20];
	int n;
	cout<<"
1.nhap so luong: ";cin>>n;
	for(int i=1; i<=n; i++)
	cin>>P[i];
	cout<<"==>DS vua nhap la:"<<endl;
	cout<<setw(10)<<"STT"<<setw(18)<<"Thoi gian"<<setw(20)<<"Ten"<<setw(20)<<"Ngay Nhap"<<setw(10)<<"Sl"<<endl;
	for(int i=1; i<=n; i++)
	cout<<P[i];
	int dem=0;
	cout<<"
==>DS phieu hang co Sl>100 la:"<<endl;
	for(int i=1; i<=n; i++)
	{
		if (P[i].getSl()>100)
		{
			cout<<P[i];
			dem++;
		}
	}
	if (dem==0) cout<<" khong co don hang nao";
	return 1;
}
rogp10 viết 17:50 ngày 01/10/2018

Sai cú pháp rồi bạn viết đơn giản thôi: input >> static_cast<Date> (P);

Hàm hai tham số mà bạn không đưa tham số nào thì

Thành Chung Nguyễn viết 17:43 ngày 01/10/2018

Bạn có sửa cụ thể vào trong code cho mình được không vì mình mới học và vẫn chưa hình dung được nên sửa như thế nào. Cảm ơn bạn.

Aragami1408 viết 17:38 ngày 01/10/2018

input &gt;&gt; D.Ngay &gt;&gt; D.Thang&gt;&gt;D.Nam;

input &gt;&gt; D.Ngay &gt;&gt; D.Thang&gt;&gt;D.Nam; chuyển thành:

input >> static_cast<Date> (P);

động não tí đi chứ

rogp10 viết 17:37 ngày 01/10/2018

Mà cũng không ổn PN với Date phải là composition chứ, Date chỉ là một phần của PN chứ PN không phải Date.

Bài liên quan
0