标题:C++中的面向对象编程与设计模式
简介:
面向对象编程(Object-Oriented Programming, OOP)是一种程序设计范式,它将程序组织为对象的集合,每个对象拥有特定的属性和行为。设计模式是一些通用的解决问题的方式。
正文:
1. 类与对象
类是定义了数据和方法的模板,对象是类的实例。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| class Person { public: std::string name; int age;
void introduce() { std::cout << "Name: " << name << ", Age: " << age << std::endl; } };
Person person1; person1.name = "John"; person1.age = 30; person1.introduce();
|
2. 封装与继承
封装是将数据和操作封装在一个单元中,只暴露必要的接口。继承允许一个类继承另一个类的属性和方法。
1 2 3 4 5 6 7 8 9 10
| class Student : public Person { public: int studentID; };
Student student1; student1.name = "Jane"; student1.age = 20; student1.studentID = 12345; student1.introduce();
|
3. 多态与虚函数
多态允许一个方法具有多个形式,虚函数是在基类中声明为虚函数的函数。
1 2 3 4 5 6 7 8 9 10 11 12 13
| class Shape { public: virtual void draw() { std::cout << "Drawing Shape" << std::endl; } };
class Circle : public Shape { public: void draw() override { std::cout << "Drawing Circle" << std::endl; } };
|
4. 设计模式
设计模式是解决特定类型问题的通用方法。例如,单例模式、工厂模式、观察者模式等。
1 2 3 4 5 6 7 8 9
| class Singleton { private: Singleton() {} public: static Singleton& getInstance() { static Singleton instance; return instance; } };
|
5. RAII与智能指针
RAII是一种资源管理的编程技巧,智能指针是RAII的一种实现方式,它可以自动释放资源。
1
| std::unique_ptr<int> smartPtr = std::make_unique<int>(5);
|
结论:
面向对象编程是一种强大的程序设计范式,它将程序组织为对象的集合,使得代码更加模块化和易于维护。设计模式提供了一些通用的解决问题的方式,可以在软件开发中得到应用。