zz_自娱自乐
回答数:104 | 被采纳数:118
#include<iostream.h>
#include<string.h>
#include<iomanip.h>
class a //定义a类
{public:
a(char*); //a的构造函数
virtual ~a(); //解析函数
const char *getname()const ;//返回name值
a *next; //用于构造链表
virtual void print(); //输出
protected:
char *name;};
a::a(char *k) //定义构造函数
{name=new char[strlen(k)+1];
strcpy(name,k);}
a::~a() //定义解析函数
{delete[]name;}
const char*a::getname()const //getname的定义
{return name;}
void a::print() //输出定义
{cout<<name<<endl;}
class b:public a //类b继承类a
{public:
b(char*,char*); //b的构造函数
~b(){};
void setbnumber(char*);
virtual void print();
protected:
char *bnumber;
};
b::b(char*k,char*str):a(k)
{setbnumber(str);}
void b::setbnumber(char*str)
{bnumber=new char[strlen(str)+1];
strcpy(bnumber,str);
}
void b::print()
{a::print();
cout<<bnumber<<endl;
}
void addfront(a *&h,a *&t)
{t->next=h;h=t;}
void showb()
{a*emphead=NULL,*ptr;
ptr=new b(\"nihao\",\"yes\"); //为构造函数赋值
addfront(emphead,ptr); //加到链表中
ptr=new b(\"hello\",\"no\"); //再赋值
addfront(emphead,ptr); //再加到链表中
ptr=emphead;
while(ptr) //输出基类a中的getname()
{ptr=ptr->next;
cout<<ptr->getname()<<endl;}
}
void main()
{showb();}
在vc6.0中检验不出错误,可就是执行到一半,输出第一个\"nihao\",\"yes\"后就说什么出现错误
调试后说错误出现在const char*a::getname()const{return name;}这里,到底是怎么回事,请高手指点一下。