C++改错题,下面这个程序哪里出错了?应该怎么改?#include#includeclass CBase{protected:char *ch;public:CBase(char *x){ch=new char[20];strcpy(ch,x);}virtual void fun()=0;virtual void fun1(){cout

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 21:08:25
C++改错题,下面这个程序哪里出错了?应该怎么改?#include#includeclass CBase{protected:char *ch;public:CBase(char *x){ch=new char[20];strcpy(ch,x);}virtual void fun()=0;virtual void fun1(){cout

C++改错题,下面这个程序哪里出错了?应该怎么改?#include#includeclass CBase{protected:char *ch;public:CBase(char *x){ch=new char[20];strcpy(ch,x);}virtual void fun()=0;virtual void fun1(){cout
C++改错题,下面这个程序哪里出错了?应该怎么改?
#include
#include
class CBase{
protected:
char *ch;
public:
CBase(char *x)
{
ch=new char[20];
strcpy(ch,x);
}
virtual void fun()=0;
virtual void fun1()
{cout

C++改错题,下面这个程序哪里出错了?应该怎么改?#include#includeclass CBase{protected:char *ch;public:CBase(char *x){ch=new char[20];strcpy(ch,x);}virtual void fun()=0;virtual void fun1(){cout
CBase中含有virtual void fun()=0; 是抽象类,是不能创建对象的.
你的头文件写法不规范,在新的c++标准中是错误的.
main函数写法也是错误的.
并且基类和派生类都应该定义拷贝构造函数,而你没有定义.
另外注意不要把const char* 隐转换为char*
修改后的代码:
#include
#include
#include
using namespace std;
class CBase
{
protected:
char *ch;
public:
CBase(const char *x)
{
ch = new char[20];
strcpy(ch,x);
}
virtual void fun() {};
virtual void fun1()
{
cout