当前位置: 首页 > news >正文

用C++实现一个简单的面向对象程序

下面我们用 C++ 实现一个简单的面向对象程序,以 “矩形(Rectangle)” 类为例,展示封装、构造函数、成员函数、析构函数等面向对象特性:

示例代码:矩形类

cpp
 
运行
#include <iostream>
using namespace std;// 定义矩形类
class Rectangle {
private:// 私有成员变量(封装:外部无法直接访问)double width;double height;public:// 构造函数(初始化对象)Rectangle(double w, double h) : width(w), height(h) {cout << "矩形对象已创建!" << endl;}// 析构函数(对象销毁时调用)~Rectangle() {cout << "矩形对象已销毁!" << endl;}// 成员函数:计算面积double getArea() {return width * height;}// 成员函数:计算周长double getPerimeter() {return 2 * (width + height);}// 成员函数:设置宽高(提供接口访问私有变量)void setSize(double w, double h) {if (w > 0 && h > 0) { // 合法性检查width = w;height = h;} else {cout << "宽高必须大于0!" << endl;}}// 成员函数:显示信息void showInfo() {cout << "矩形宽:" << width << ", 高:" << height << endl;cout << "面积:" << getArea() << ", 周长:" << getPerimeter() << endl;}
};int main() {// 创建矩形对象(调用构造函数)Rectangle rect(3.5, 2.0);// 调用成员函数rect.showInfo();// 修改宽高rect.setSize(5.0, 4.0);rect.showInfo();// 错误测试(宽高为负)rect.setSize(-2.0, 3.0);// 程序结束时,对象销毁(调用析构函数)return 0;
}
 

代码解析

  1. 封装特性
    • width 和 height 是私有成员变量(private),外部无法直接访问,只能通过类提供的成员函数(如 setSize)间接操作,保证数据安全性。
  2. 构造函数与析构函数
    • 构造函数 Rectangle(double w, double h) 在创建对象时初始化宽高,析构函数 ~Rectangle() 在对象销毁时执行清理操作(此处仅打印提示)。
  3. 成员函数
    • getArea()getPerimeter() 实现业务逻辑(计算面积和周长)。
    • setSize() 提供安全的接口修改私有变量,并包含合法性检查。

运行结果

plaintext
矩形对象已创建!
矩形宽:3.5, 高:2
面积:7, 周长:11
矩形宽:5, 高:4
面积:20, 周长:18
宽高必须大于0!
矩形对象已销毁!
 

扩展:继承与多态(可选)

如果想进一步展示继承和多态,可以定义一个基类 Shape(形状),让 Rectangle 继承它:
cpp
 
运行
 
#include <iostream>
using namespace std;// 基类:形状
class Shape {
public:virtual double getArea() = 0; // 纯虚函数(抽象方法)virtual ~Shape() {} // 虚析构函数
};// 派生类:矩形
class Rectangle : public Shape {
private:double width, height;
public:Rectangle(double w, double h) : width(w), height(h) {}double getArea() override { // 重写纯虚函数return width * height;}
};int main() {Shape* shape = new Rectangle(3, 4);cout << "面积:" << shape->getArea() << endl; // 输出12delete shape;return 0;
}
 
这个例子展示了面向对象的核心特性,适合初学者理解 C++ 的类与对象使用方式。
http://www.jsqmd.com/news/58452/

相关文章:

  • 在示例代码中添加设置和获取矩形宽度和高度的成员函数
  • 2025 十大电暖器品牌推荐:健康防护升级,场景适配更精准
  • 在AdvancedInstaller中通过版本号检查软件部署环境
  • 2025年河南图文矩阵推广服务商权威推荐榜单:河南矩阵推广公司/河南矩阵推广方案/河南矩阵推广引流渠道精选
  • 香橙派R2S手搓双宽带聚合指南
  • QTableView 增加Combox
  • 2025中国汽车电子领域领先企业推荐榜单!我国汽车电子领域有哪些领先企业?
  • 源码解析:CRMEB商品统计模块的业务逻辑与数据库设计
  • 完整教程:Linux学习之旅6
  • Sword B树学习笔记一
  • 混频器混频效率低,噪声大,可能是本振信号强度所致
  • 【*矩阵运算】你不得不会的线性代数/点乘和矩阵乘法的区别/如何加速运算和不保留中间结果(防止爆内存MLE)
  • 2025年五大有实力的电加热导热油炉生产厂家推荐
  • 纺织脉搏,气动赋能:精选高效空压机品牌助力产业升级
  • 博客园,我来啦~
  • 2025年重庆口碑不错的幼儿园机构推荐,专业的幼儿园全解析
  • 2025预糊化淀粉厂家TOP5公平推荐:各有专攻的优质供应商,按需选择更适配
  • 智选纺织动力源:揭秘高效空压机品牌如何为纺织业注入强劲动能
  • 2025年12月角接触球轴承厂家推荐 应用场景涵盖数控机床主轴轴承、机器人轴承、电机轴承
  • Binder机制的优点有哪些?
  • 纺织行业空压机品牌精选:节能与适配性双优方案来袭
  • 2025年12月货架厂家权威TOP5推荐:立足实力,甄选可靠的仓储基石
  • 智选空压动力:深度解析国内空压机实力品牌与行业应用方案
  • 2025 年 12 月试验机,拉力试验机,高低温拉伸试验机厂家最新推荐,聚焦资质、案例、售后的十家机构深度解读!
  • 2025年12月国内空压机品牌权威推荐TOP10:节能与实力的双重考量
  • 2025 年12月挤出机行业优选5优质厂家推荐:比较好的双螺杆挤出机/挤出机设备/单螺杆挤出机/螺杆挤出机/双螺杆颗粒挤出机/平行双螺杆挤出机/三螺杆挤出机/pp双螺杆挤出机/塑胶双螺杆挤出机厂家
  • 2025年柜体发光板批发厂家权威推荐榜单:发光木板‌/圆形发光板‌/发光置物架‌源头厂家精选
  • 2025 年 12 月成都艺术生文化课集训,成都高三冲刺封闭式全托辅导最新推荐,聚焦资质、案例、售后的十家机构深度解读!
  • 2025年卧式LTO沉积设备供货商推荐榜单:Sipos沉积设备/PSG沉积设备/Si3N4沉积设备制造商精选
  • 2025 年北京婚礼堂服务机构最新推荐榜,聚焦品牌服务品质与菜品新鲜度深度解析烟火气宴席北京婚礼堂公司推荐