一个学生管理得类的建立,请高手帮忙看一下

来源:百度知道 编辑:UC知道 时间:2024/05/06 11:59:07
一个基类CPerson,两个派生类CStudent,CTeacher,要求CPerson包含姓名,年龄,性别。CStudent继承CPerson的性质,增加学号和五门考试成绩,并算出平均成绩。CTeacher继承CPerson的性质,增加职称和教授课程。
以下是我自己编的,编译没有错误,但组建时有错误!
#ifndef _CLASS_H_
#define _CLASS_H_

#include <iostream>
using namespace std;

class CPerson
{

public:

CPerson (void){}

~CPerson(void){}

void Set(void);

void Get(void);

private:
char *m_name;

char *m_sex;

int m_age;

};

class CStudent : public CPerson
{

public:

CStudent(){}

~CStudent(void){}

void Setscore(void);

void Show(void);

private:

float m_score[5];

static int m_num;

};

class CTeacher : public CPerson
{

public:

CTeacher(){}

~CTeacher(void){}

void Setvalue(void);

void Show

1.不要用char*保存字符串,它只是个指针,分配空间前没有存放数据的能力,改用string吧
2.类静态成员m_num没初始化,连接时报找不到符号

字符串参数char*,都没有分配内存
最好是直接用string类

float s=0.0;
for ( i = 0 ; i < 5; i++)

{
cout<<"成绩:"<<m_score[i]<<endl;
s=s+m_score[i];

}
cout<<"平均成绩"<<s/5<<endl;

中的for ( i = 0 ; i < 5; i++) 改为for (int i = 0 ; i < 5; i++)

2. CStudent中的静态成员m_num没初始化
在.cpp中添加如int CStudent::m_num=0;