C++改错题,下面这个程序哪里出错了?应该怎么改?
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/19 20:56:57
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
#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
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
你的头文件写法不规范,在新的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