C++;简单程序实现中的继承和虚函数错误 我正在学习C++,我正在尝试实现一个简单的C++程序来创建一个抽象类,如下: 请解释为什么编译后会出现此错误?请用简单的语言解释一下,我不是一个专业术语专家,而且还在学习OOPS的概念。提前感谢(下面的代码和错误) 代码:

C++;简单程序实现中的继承和虚函数错误 我正在学习C++,我正在尝试实现一个简单的C++程序来创建一个抽象类,如下: 请解释为什么编译后会出现此错误?请用简单的语言解释一下,我不是一个专业术语专家,而且还在学习OOPS的概念。提前感谢(下面的代码和错误) 代码:,c++,class,inheritance,abstract,C++,Class,Inheritance,Abstract,Draw方法的参数不匹配 形状: virtual void Draw(void)=0; 在圆形和方形中: void Draw(double radius) 如果要使用虚拟方法,则参数必须匹配。Draw方法的参数不匹配 形状: virtual void Draw(void)=0; 在圆形和方形中: void Draw(double radius) 如果要使用虚拟方法,则参数必须匹配。Draw方法的参数不匹配 形状: virtual void Draw(void)=0; 在圆形和方形中:

Draw方法的参数不匹配

形状:

virtual void Draw(void)=0;
在圆形和方形中:

void Draw(double radius)

如果要使用虚拟方法,则参数必须匹配。

Draw方法的参数不匹配

形状:

virtual void Draw(void)=0;
在圆形和方形中:

void Draw(double radius)

如果要使用虚拟方法,则参数必须匹配。

Draw方法的参数不匹配

形状:

virtual void Draw(void)=0;
在圆形和方形中:

void Draw(double radius)

如果要使用虚拟方法,则参数必须匹配。

Draw方法的参数不匹配

形状:

virtual void Draw(void)=0;
在圆形和方形中:

void Draw(double radius)

如果您想拥有虚拟方法,参数必须匹配。

此方法的形状应为(不需要空格)


当您声明圆时,您需要一个
绘制方法(即不带半径位的方法)

此方法在形状上应该是(不需要空白)


当您声明圆时,您需要一个
绘制方法(即不带半径位的方法)

此方法在形状上应该是(不需要空白)


当您声明圆时,您需要一个
绘制方法(即不带半径位的方法)

此方法在形状上应该是(不需要空白)


当您声明圆时,您需要一个
绘制
方法(即不带半径位的方法)

问题如下:在类
形状
中,您声明绘制不带参数:

virtual void Draw(void)=0;
而子类
circle
square
具有
draw
期望双精度:

void Draw(double radius)
圆圈
中,我认为
半径
(可能还有类似于中心的东西)应该传递给构造函数,绘图不应该接受任何内容。例如:

class circle:public shape{
private:
    double radii;
public:
    circle(double radius) radii(radius) {};
    void Draw(){
        cout << "The radius of the circle is "  << radii<<endl;
    }
};
或者,如果您不需要动态分配:

circle c(radius);
c.Draw()

当然,类
square
也有同样的问题。

问题如下:在类
形状中,您声明draw不带参数:

virtual void Draw(void)=0;
而子类
circle
square
具有
draw
期望双精度:

void Draw(double radius)
圆圈
中,我认为
半径
(可能还有类似于中心的东西)应该传递给构造函数,绘图不应该接受任何内容。例如:

class circle:public shape{
private:
    double radii;
public:
    circle(double radius) radii(radius) {};
    void Draw(){
        cout << "The radius of the circle is "  << radii<<endl;
    }
};
或者,如果您不需要动态分配:

circle c(radius);
c.Draw()

当然,类
square
也有同样的问题。

问题如下:在类
形状中,您声明draw不带参数:

virtual void Draw(void)=0;
而子类
circle
square
具有
draw
期望双精度:

void Draw(double radius)
圆圈
中,我认为
半径
(可能还有类似于中心的东西)应该传递给构造函数,绘图不应该接受任何内容。例如:

class circle:public shape{
private:
    double radii;
public:
    circle(double radius) radii(radius) {};
    void Draw(){
        cout << "The radius of the circle is "  << radii<<endl;
    }
};
或者,如果您不需要动态分配:

circle c(radius);
c.Draw()

当然,类
square
也有同样的问题。

问题如下:在类
形状中,您声明draw不带参数:

virtual void Draw(void)=0;
而子类
circle
square
具有
draw
期望双精度:

void Draw(double radius)
圆圈
中,我认为
半径
(可能还有类似于中心的东西)应该传递给构造函数,绘图不应该接受任何内容。例如:

class circle:public shape{
private:
    double radii;
public:
    circle(double radius) radii(radius) {};
    void Draw(){
        cout << "The radius of the circle is "  << radii<<endl;
    }
};
或者,如果您不需要动态分配:

circle c(radius);
c.Draw()

当然类
square
也有同样的问题。

简而言之,
void-Draw(void)
void-Draw(double)
不同,因此您没有覆盖基类纯虚方法。存在大量重复项。简而言之,
void Draw(void)
void Draw(double)
不同,因此您没有重写基类纯虚拟方法。存在大量重复项。简而言之,
void Draw(void)
void Draw(double)
不同,因此您没有重写基类纯虚拟方法。存在大量重复项。简而言之,
void Draw(void)
void Draw(double)
不同,因此您没有重写基类纯虚拟方法。外面有很多复制品。啊!非常感谢。后续问题:是否有任何方法可以覆盖此行为?这意味着形状(基类)参数中的虚拟函数没有类型,但派生类能够传递任何类型的参数double、char或int。啊!非常感谢。后续问题:是否有任何方法可以覆盖此行为?这意味着形状(基类)参数中的虚拟函数没有类型,但派生类能够传递任何类型的参数double、char或int。啊!非常感谢。后续问题:是否有任何方法可以覆盖此行为?这意味着形状(基类)参数中的虚拟函数没有类型,但派生类能够传递任何类型的参数double、char或int。啊!非常感谢。后续问题:是否有任何方法可以覆盖此行为?这意味着形状(基类)参数中的虚函数没有类型,但派生类能够传递任何类型的参数double或char或int。谢谢,我发现这种优化非常有用
circle*p=new circle(radius)单行。也是的,我可能会将参数传递给构造函数。谢谢,我发现这个优化非常有用
circle*p=newcircle(radius)单行。也是的,我可能会将参数传递给构造函数。谢谢,我发现这个优化非常有用
ci