一个学生管理得类的建立,请高手帮忙看一下
来源:百度知道 编辑: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
以下是我自己编的,编译没有错误,但组建时有错误!
#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;