mình bị lỗi khó hiểu , trong khi không sai cú pháp

và đây là code

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

class ngay
{
private:
	int ngay, thang, nam;

public:
	void nhap()
	{
		cout << " nhap ngay : ";
		cin >> ngay;

		cout << " nhap thang : ";
		cin >> thang;

		cout << " nhap nam : ";
		cin >> nam;
	}
	void xuat()
	{
		cout << "\n ngay" << ngay << "thang " << thang << " nam " << nam << endl;
	}
};
class hocsinh
{
private:
	string ten;
	float diemtoan, diemvan;
	ngay ngaysinh;              // khai báo cho nó  thêm 1 đối tượng là ngay để sử dụng cho các hàm bên dưới

public:      // phương thức (method)
	void nhap()
	{
		fflush(stdin);
		cout << "\n nhap ten :";
		getline(cin, ten);
		
		cout << "\n nhap diem toan :";
		cin >> diemtoan;

		cout << "nhap diem van :";
		cin >> diemvan;

		cout << "\nnhap ngay sinh :";
		ngaysinh.nhap();
	}
	void xuat()
	{
		cout << "ten :" << ten << endl;
		cout << "diem toan :" <<diemtoan << endl;
		cout << "diem van : " << diemvan << endl;
		cout << "ngay sinh :";
		ngaysinh.xuat();
	}
	float tinhtrungbinh()
	{
		return (diemtoan + diemvan) / 2;
	}
};

void main()
{
	hocsinh hs1;
	hs1.nhap();
	hs1.xuat();
	float dtb = hs1.tinhtrungbinh();
	cout << "diem trung binh : " << dtb <<endl;
	system("pause");
}

mong mọi người cho cách giải quyết !!!

Tên class là “ngay” rồi bạn lại đặt tên một biến là “ngay” nên nó mới báo nhặng lên á.

Mình nghĩ là do bạn sai ở hàm main. Hàm main nên khai báo theo kiểu trả về int main. mình thử buid nó chỉ báo lỗi ở chỗ đó. :smiley:

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

class ngay
{
private:
	int ngay2, thang, nam;

public:
	void nhap()
	{
		cout << " nhap ngay : ";
		cin >> ngay2;

		cout << " nhap thang : ";
		cin >> thang;

		cout << " nhap nam : ";
		cin >> nam;
	}
	void xuat()
	{
		cout << "\n ngay" << ngay2 << " thang " << thang << " nam " << nam << endl;
	}
};
class hocsinh
{
private:
	string ten;
	float diemtoan, diemvan;
	ngay ngaysinh;              // khai báo cho nó  thêm 1 đối tượng là ngay để sử dụng cho các hàm bên dưới

public:      // phương thức (method)
	void nhap()
	{
		//fflush(stdin);
		cout << "\n nhap ten :";
		getline(cin, ten);

		cout << "\n nhap diem toan :";
		cin >> diemtoan;

		cout << "nhap diem van :";
		cin >> diemvan;

		cout << "\nnhap ngay sinh :\n";
		ngaysinh.nhap();
	}
	void xuat()
	{
		cout << "ten :" << ten << endl;
		cout << "diem toan :" <<diemtoan << endl;
		cout << "diem van : " << diemvan << endl;
		cout << "ngay sinh :";
		ngaysinh.xuat();
	}
	float tinhtrungbinh()
	{
		return (diemtoan + diemvan) / 2;
	}
};

int main()
{
	hocsinh hs1;
	hs1.nhap();
	hs1.xuat();
	float dtb = hs1.tinhtrungbinh();
	cout << "diem trung binh : " << dtb <<endl;
//	system("pause");
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?