Em đang học sử dụng thành viên static cho class, khi làm thử một bài tập thì bị báo lỗi nhưng em không hiểu tại sao (lỗi LNK2001), mong các anh chị xem giúp code của em và chỉ giáo ạ! em cảm ơn !!
#include <iostream>
#include <string>
using namespace std;
class HocSinh
{
private:
char *hoTen;
float diemToan,diemVan,diemAnh,dtb;
int MSSV_CaNhan;
static int MSSV;
static float dtbMax;
static HocSinh HSG;
public:
HocSinh();
HocSinh(char*, float, float, float);
~HocSinh();
void DatHoTen(char*);
void GanDiem(float,float,float);
friend ostream &operator<<(ostream &out, const HocSinh &hs);
static HocSinh HSDiemTBCaoNhat();
};
void main()
{
HocSinh hs1;
hs1.DatHoTen("Nguyen Van A");
hs1.GanDiem(7, 8, 10);
HocSinh hs2("Tran Thi B", 5, 8, 4.5);
HocSinh hs3("Hoang Thi C", 9.5, 8.5, 4.5);
HocSinh hs4("Le Van D", 7.5, 9, 10);
//"HS: Nguyen Van A, MS: 1363001, DTB: 7.53"
cout << hs1 << endl << hs2 << endl << hs3 << endl << hs4 << endl << endl;
cout << "Hoc sinh co diem TB cao nhat:" << endl;
cout << HocSinh::HSDiemTBCaoNhat() << endl;
system("pause");
}
int HocSinh::MSSV = 1363002;
float HocSinh::dtbMax = -1;
HocSinh::HocSinh()
{
diemToan=diemVan=diemAnh=dtb=0;
this->hoTen=new char[1];
this->hoTen[0]='\0';
this->MSSV_CaNhan=MSSV;
MSSV++;
if(this->dtb>dtbMax)
{
dtbMax=this->dtb;
HSG=*this;
}
}
HocSinh::HocSinh(char *hoTen, float dt, float dv, float da)
{
this->diemToan=dt;
this->diemVan=dv;
this->diemAnh=da;
this->dtb=(diemToan+diemVan+diemAnh)/3;
this->hoTen=new char[strlen(hoTen)+1];
strcpy(this->hoTen,hoTen);
if(this->dtb>dtbMax)
{
dtbMax=this->dtb;
HSG=*this;
}
this->MSSV_CaNhan=MSSV;
MSSV++;
}
HocSinh::~HocSinh()
{
delete this->hoTen;
}
void HocSinh::DatHoTen(char *hoTen)
{
this->hoTen=new char[strlen(hoTen)+1];
strcpy(this->hoTen,hoTen);
}
void HocSinh::GanDiem(float dt, float dv, float da)
{
this->diemToan=dt;
this->diemVan=dv;
this->diemAnh=da;
this->dtb=(diemToan+diemVan+diemAnh)/3;
if(this->dtb>dtbMax)
dtbMax=this->dtb;
}
HocSinh HocSinh::HSDiemTBCaoNhat()
{
return HSG;
}
ostream &operator<<(ostream &out, const HocSinh &hs)
{
out<<"HS: "<<hs.hoTen<<", MS: "<<hs.MSSV_CaNhan<<", DTB: "<<hs.dtb<<endl;
return out;
}
Đề bài yêu cầu in ra màn hình như thế này ạ:
Em cảm ơn ạ!!!


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