在 rectangle 和 equal_polygon 类中,不是可以默认调用无参数的polygon的构造函数吗?我在polygon类中声明了两个构造函数,一个是有参数的,一个是无参数的
时间: 2024-03-03 17:51:37 浏览: 19
在子类中,如果你没有显式地调用基类的构造函数,则会默认调用基类的无参构造函数。因此,在 rectangle 和 equal_polygon 类中,如果你没有显式地调用 polygon 类的构造函数,那么就会使用默认的无参构造函数。但是,在 polygon 类中,你定义了一个有参数的构造函数,并且没有在子类中显式地调用它,这可能会导致 polygon 类的数据成员没有被正确初始化。
如果你想要在子类中使用带参数的 polygon 构造函数来初始化基类的数据成员,你可以在子类的初始化列表中调用它,如下所示:
```c++
class rectangle: public polygon{
private:
int height;
int width;
public:
rectangle(int h, int w): polygon() {
height = h;
width = w;
}
int perimeter(){
return 2*(height + width);
}
void display(){
cout<<4<<" "<<perimeter()<<endl;
}
};
class equal_polygon: public polygon{
private:
int side_len;
public:
equal_polygon(int n, int s): polygon(n) {
side_len = s;
}
int perimeter(){
return number*side_len;
}
void display(){
cout<<number<<" "<<perimeter()<<endl;
}
};
```
在上面的代码中,我在 rectangle 和 equal_polygon 的构造函数中显式地调用了 polygon 的构造函数,并将参数传递给它来初始化基类的数据成员。同时,在 polygon 的构造函数中,我使用了一个 while 循环来读取多个边长,这样你就可以在子类中使用带参数的 polygon 构造函数来读取和初始化多个边长。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)