派生类

#include<iostream> using namespace std; class shape { protected: double s; public: void show() { cout << "s= " << s << endl; } }; class rectangle : public shape { protected: double len, width; public: rectangle(double l = 1, double w = 1) : len(l), width(w) { s = len * width; } ~rectangle() {} void setrec(double l = 1, double w = 1) { if (l >= 0 && w >= 0) { len = l; width = w; s = len * width; } else { std::cerr << "Invalid input for rectangle dimensions" << std::endl; } } double getlen() const { return len; } double getwid() const { return width; } void show() { cout << "len=" << len << endl; cout << "width=" << width << endl; shape::show(); } }; int main() { rectangle r(10, 20); r.show(); r.setrec(5, 15); r.show(); }

class rectangle : public shape:定义了一个派生类 rectangle,继承自 shape 类。 protected double len, width;:声明了两个受保护的双精度浮点数,用于存储矩形的长度和宽度。 rectangle(double l = 1, double w = 1) : len(l), width(w) { s = len * width; }: 构造函数,使用成员初始化列表初始化 len 和 width。 计算并存储矩形的面积(通过 s = len * width),将其存储在从基类继承的 s 成员变量中。 ~rectangle() {}:析构函数,目前为空。 void setrec(double l = 1, double w = 1): 可用于重新设置矩形的长度和宽度。 包含输入验证:如果 l 和 w 都大于或等于 0,则更新 len、width 和 s;否则输出错误信息。 double getlen() const { return len; } 和 double getwid() const { return width; }: 定义了两个常量成员函数,分别用于获取矩形的长度和宽度。 const 关键字确保函数不会修改对象的状态。 void show(): 重载了基类的 show() 函数。 输出矩形的长度和宽度,然后调用基类的 show() 函数输出矩形的面积。

这部分是比较难的,现在我还不太明白。

全部评论

相关推荐

陆续:不可思议 竟然没那就话 那就我来吧 :你是我在牛客见到的最美的女孩
点赞 评论 收藏
分享
05-23 19:02
吉林大学 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-29 17:30
找实习找着找着就要进入7月了,马上秋招也要开始了,找实习还有意义吗?
绝迹的星:有面就面, 没面上就当日薪4位数大佬免费培训, 面上了再考虑要不要实习
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务