【发布时间】:2016-04-15 19:09:24
【问题描述】:
我正在尝试从类形状创建圆形和矩形。如果我使用参数(来自圆形类)调用 Shape() 构造函数,我希望为 y 分配 pi。由于 Shape 具有纯虚函数,因此编译器显示错误。我该如何克服这个错误。那么为什么默认参数运行正确呢? 我也从 Circle 类中尝试了 this->Shape(0) 。编译器说“无效使用”
#include<iostream>
using namespace std;
class Shape
{public:
double x,y;
Shape()
{x=0;y=0;}
Shape(int p,int t=3.14159)
{x=p;y=t;}
virtual void display_area()=0;
virtual void get_data()=0;
};
class Circle: public Shape
{public:
Circle()
{Shape(0);} //ERROR HERE
void get_data()
{cout<<"\nRadius: ";cin>>x;}
void display_area()
{cout<<"\nArea: "<<y*x*x;}
};
【问题讨论】:
-
难怪如果代码格式如此糟糕,您无法修复代码。规则 #1:正确格式化您的代码!
-
为什么你的代码格式这么差?你怎么能读到这个?
标签: c++ inheritance constructor virtual-functions