c++ 一个小程序不好用

[复制链接]
查看11 | 回复3 | 2016-4-26 17:24:32 | 显示全部楼层 |阅读模式
#include
#include
class student
{
public:
virtual void sname()=0;
virtual void ssex()=0;
virtual void sage()=0;
};
class L_student:public student
{
public:char name[10];

char sex[2];

char age[2];
void dispname()
{coutsname();
p->ssex();
p->sage();
}
结果中性别也就是“男”这个字后面总是有个年龄也就是20,而这个20不知道是从哪里来的。

回复

使用道具 举报

千问 | 2016-4-26 17:24:32 | 显示全部楼层
你的问题是数组定义越界问题,char sex[2];char age[2];只需改成char sex[4]; char age[4];即可。只是我在vs2008上测试的完整代码,运行结果是你想要的那种 #include #include using namespace std;class student{public: virtual void sname()=0; virtual void ssex()=0; virtual void sa
回复

使用道具 举报

千问 | 2016-4-26 17:24:32 | 显示全部楼层
char sex[2];这个设置太小,要知道一个汉字一般都是占四个字节的。只要改为:char sex[4];就解决问题了……本人在vc++6.0上编译通过……
回复

使用道具 举报

千问 | 2016-4-26 17:24:32 | 显示全部楼层
strcpy(age,"20");这个来的还有你程序运行最后的时候要运行析构函数~L_student() {cout<<name<<endl<<sex<<endl<<age<<endl; }就这个输出了age
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行