| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1033 人关注过本帖
标题:我的程序虚构有问题,请帮忙解决,谢谢!
只看楼主 加入收藏
ye9724069
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2004-12-21
收藏
 问题点数:0 回复次数:7 
我的程序虚构有问题,请帮忙解决,谢谢!

class person //此中的虚构有问题,????????????有问题;有问题 {//public: char *name; char sex; int age; public: person(char *na,char sx,int ag); void print(void)const; ~person(void);//把这里的虚构不要,即可,要了为什么不行? }; person::person(char *na,char sx,int ag) { // name=na; name=new char(strlen(na)+1); strcpy(name,na); sex=sx; age=ag; } void person::print(void)const { cout<<"name:"<<name<<endl; cout<<"sex:"<<sex<<endl; cout<<"age:"<<age<<endl; } person::~person () { delete[]name; } // // // // class student:public person { int number; char department[30]; public: student(char *na,char sx,int ag,int num,char *dep); void print(void)const;

}; student::student(char *na,char sx,int ag,int num,char *dep):person(na,sx,ag) { number=num; // department=dep; strcpy(department,dep); } void student::print(void)const { person::print (); cout<<"number:"<<number<<endl; cout<<"department:"<<department<<endl; }

// // // // class teacher:public person { char post[30]; char course[40]; public: teacher(char *na,char sx,int ag,char *po,char *co); void print(void)const;

}; teacher::teacher(char *na,char sx,int ag,char *po,char *co):person(na,sx,ag)

{ // person::print (); strcpy(post,po); // course=co; strcpy(course,co); } void teacher::print(void)const { person::print (); cout<<"post:"<<post<<endl; cout<<"course:"<<course<<endl; }

// // // // class graduateStudent:public student { char advisor[30]; public:

graduateStudent(char *na,char sx,int ag,int num,char *dep,char *ad); void print(void)const;

}; graduateStudent::graduateStudent(char *na,char sx,int ag,int num,char *dep,char *ad):student(na,sx,ag,num,dep)

{ strcpy(advisor,ad); } void graduateStudent::print (void)const { student::print (); cout<<"advisor:"<<advisor<<endl; }

int main(void) { person per1("ye",'m',16),per2("guang",'w',12); student stu1("ming",'m',23,1001,"comp"),stu2("yeguangming",'w',34,1002,"physics"); teacher teach1("meng",'m',23,"professor","english"); graduateStudent grad_stu("mingli",'w',45,3432,"math","wang"); per1.print (); per2.print (); stu1.print (); stu2.print (); teach1.print (); grad_stu.print (); return 0; }

搜索更多相关主题的帖子: 虚构 
2004-12-21 22:40
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

由于你的构造函数有name=new char(strlen(na)+1);

动态申请了内存,所以要加复制构造函数,而错误其实不在析构,在你没给出复制构造函数。

2004-12-22 00:18
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
至于复制构造函数怎么写,你先找找资料,我不多说。
2004-12-22 00:22
corrupt
Rank: 2
等 级:新手上路
威 望:3
帖 子:535
专家分:0
注 册:2004-9-29
收藏
得分:0 

最好 是 按 楼上 说的,class 中 用 new的话,最好 是定义一个 复制构造函数

内存 漏了 可惜~~~~


2004-12-22 13:46
corrupt
Rank: 2
等 级:新手上路
威 望:3
帖 子:535
专家分:0
注 册:2004-9-29
收藏
得分:0 

不知道 楼主 为什么 不用 virtual 啊??

[此贴子已经被作者于2004-12-22 14:01:14编辑过]


2004-12-22 13:52
ye9724069
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2004-12-21
收藏
得分:0 
谢谢大家的帮助!!!
谢谢大家的帮助,我现在知道该了
2004-12-22 15:07
corrupt
Rank: 2
等 级:新手上路
威 望:3
帖 子:535
专家分:0
注 册:2004-9-29
收藏
得分:0 

呵呵,我还 不知道啊, 我也很想知道了~~

你把 改了的程序 发上来把~~


2004-12-22 15:13
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 

上面并没有内存泄露的问题吧,同时虚函数是用来表示动态的多态的,不一定要用,

看有没有必要!


差点把你忘了...
2004-12-22 16:44
快速回复:我的程序虚构有问题,请帮忙解决,谢谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017994 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved