设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 2033|回复: 6
打印 上一主题 下一主题

[求助]求助错在哪?(有关继承)

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-4 02:09:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班号和成绩,教师数据有编号、姓名、
职称和部门。要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师数
据操作类teacher的基类。*/
#include<iostream.h>
#include<string.h>
class Person
{
public:
int id;
char name[10];
void show(Student s)
{
s.set();
cout << id << endl;
cout << name << endl;
s.print();
}

};
class Student:public Person
{
public:
int classid;
double score;
void set()
{
cout << "请输入编号:" << endl;
cin >> classid;
cout << "请输入成绩:" << endl;
cin >> score;
}
void print()
{
cout << 编号:" << classid << endl;
cout << "成绩:" << score << endl;
}

};
class Teacher:public Person
{
public:
char zhichen[10];
char bumen[10];

};
void main()
{
Person a;
strcpy(a.name,"D??÷");
a.id=2;
Student s1;
a.show(s1);
}

//程序还没写完整 可是一直报错 达人帮忙指点下
2#
发表于 2009-11-4 02:09:01 | 只看该作者
1. 你应该把错误贴出来,不然别人怎么给你分析
2. 你的程序太不规范了,比如头文件应该用<iostream>而不是<iostream.h>(.h形式已经被摒弃),main函数返回int型
3. 设计类时,一般应该把数据成员设计为private,不然,你怎么体现封闭性?
4. 传递类类型时,能用引用就用引用,能用const引用就用const引用
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-4 02:09:02 | 只看该作者
在person类里的show函数的参数是什么类型?student类在这里还没定义,肯定出错
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-4 02:09:03 | 只看该作者
show函数的形参类型是对象类型啊 就是传进去一个Student类的对象
还是一头雾水 达人们能不能说的具体点啊
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-4 02:09:04 | 只看该作者
以下是引用xweiweix在2007-1-23 9:25:00的发言:
show函数的形参类型是对象类型啊 就是传进去一个Student类的对象
还是一头雾水 达人们能不能说的具体点啊
在类Person前,放上前置声明:class Student;
回复 支持 反对

使用道具 举报

6#
发表于 2009-11-4 02:09:05 | 只看该作者
编译是从前到后的!
在你Person类声明前有没有Student类的声明呢?
编译器能认Student吗?
能不出错吗?
还没明白吗?
回复 支持 反对

使用道具 举报

7#
发表于 2009-11-4 02:09:06 | 只看该作者
#include<iostream.h>
#include<string.h>
class student;
class Person
{
public:
int id;
char name[10];
void show(Student s)
{
s.set();
cout << id << endl;
cout << name << endl;
s.print();
}

};
class Student:public Person
{
public:
int classid;
double score;
void set()
{
cout << "请输入编号:" << endl;
cin >> classid;
cout << "请输入成绩:" << endl;
cin >> score;
}
void print()
{
cout << 编号:" << classid << endl;
cout << "成绩:" << score << endl;
}

};
class Teacher:public Person
{
public:
char zhichen[10];
char bumen[10];

};
void main()
{
Person a;
strcpy(a.name,"D??÷");
a.id=2;
Student s1;
a.show(s1);
}
你这么做是干什么呢
让基类调用子类函数来完成功能???
看看虚函数吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-19 00:49 , Processed in 0.110221 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表