以下是C++语言学习面向对象编程应用案例:
- 类和对象
// 声明一个名为Person的类
class Person {
public:
string name; // 姓名属性
int age; // 年龄属性
// 构造函数,用于初始化对象的属性
Person(string n, int a) {
name = n;
age = a;
}
// 成员函数,用于输出对象的姓名和年龄
void display() {
cout << "姓名:" << name << ",年龄:" << age << endl;
}
};
// 创建一个Person对象并初始化其属性
Person p1("张三", 20);
p1.display(); // 输出"姓名:张三,年龄:20"
- 继承和多态
// 声明一个基类Animal和一个派生类Dog
class Animal {
public:
virtual void speak() { // 虚函数,用于输出动物发出的声音
cout << "动物发出声音" << endl;
}
};
class Dog : public Animal { // 派生类Dog继承自基类Animal
public:
void speak() override { // 重写虚函数speak(),用于输出狗发出的声音
cout << "汪汪汪" << endl;
}
};
// 创建一个Dog对象并调用其speak()函数
Dog d;
d.speak(); // 输出"汪汪汪",实现了多态性,即通过基类的指针或引用可以访问派生类的成员函数。
- 封装和抽象
// 声明一个名为Circle的类,封装了圆的属性和操作方法
class Circle {
private: // 私有属性,只能在类内部访问
double radius; // 半径属性
public: // 公有属性和方法,可以在类外部访问和使用
Circle(double r) { // 构造函数,用于初始化对象的半径属性
radius = r;
}
double getArea() { // 成员函数,用于计算圆的面积并返回结果
return 3.14 * radius * radius;
}
double getPerimeter() { // 成员函数,用于计算圆的周长并返回结果
return 2 * 3.14 * radius;
}
};
// 创建一个Circle对象并调用其getArea()和getPerimeter()函数来计算圆的面积和周长
Circle c(5);
cout << "圆的面积为:" << c.getArea() << endl; // 输出"圆的面积为:78.5"
cout << "圆的周长为:" << c.getPerimeter() << endl; // 输出"圆的周长为:31.4"