用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;
}
代码解析
-
封装特性:
width和height是私有成员变量(private),外部无法直接访问,只能通过类提供的成员函数(如setSize)间接操作,保证数据安全性。
-
构造函数与析构函数:
- 构造函数
Rectangle(double w, double h)在创建对象时初始化宽高,析构函数~Rectangle()在对象销毁时执行清理操作(此处仅打印提示)。
- 构造函数
-
成员函数:
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; // 输出12
delete shape;
return 0;
}
这个例子展示了面向对象的核心特性,适合初学者理解 C++ 的类与对象使用方式。

浙公网安备 33010602011771号