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