计模式是在软件开发过程中,经过实践积累而形成的一套解决常见问题的最佳实践方法。设计模式是软件开发中的宝贵工具,它们可以帮助开发人员更快速、更有效地解决常见问题,提高代码质量,减少重复劳动,并促进团队间的合作与共享。
#include <iostream>
// 基类 Shape
class Shape {
public:
virtual void draw() = 0;
};
// 具体类 Circle
class Circle : public Shape {
public:
void draw() override {
std::cout << "Draw Circle" << std::endl;
}
};
// 具体类 Rectangle
class Rectangle : public Shape {
public:
void draw() override {
std::cout << "Draw Rectangle" << std::endl;
}
};
// 具体类 Triangle
class Triangle : public Shape {
public:
void draw() override {
std::cout << "Draw Triangle" << std::endl;
}
};
// 工厂类 ShapeFactory
class ShapeFactory {
public:
static Shape* createShape(const std::string& type) {
if (type == "Circle") {
return new Circle();
} else if (type == "Rectangle") {
return new Rectangle();
} else if (type == "Triangle") {
return new Triangle();
}
return nullptr;
}
};
// 客户端代码
int main() {
Shape *circle = ShapeFactory::createShape("Circle");
Shape *rectangle = ShapeFactory::createShape("Rectangle");
Shape *triangle = ShapeFactory::createShape("Triangle");
circle->draw();
rectangle->draw();
triangle->draw();
delete circle;
delete rectangle;
delete triangle;
return 0;
}
C++是一种支持多种编程范式的语言,其中面向对象编程(Object-Oriented Programming,OOP)是C++的核心特性之一。面向对象编程是一种以数据为中心的编程范式,它将数据和处理数据的方法结合在一起,形成对象。以下是C++面向对象编程的一些基础概念:
class MyClass {
public:
int myData; // 公有数据成员
void myFunction(); // 公有成员函数
private:
int privateData; // 私有数据成员
};
MyClass myObject; // 创建MyClass的一个对象
class MyClass {
public:
MyClass() { // 构造函数
// 初始化代码
}
};
class MyClass {
public:
~MyClass() { // 析构函数
// 清理代码
}
};
class MyClass {
public:
void myFunction() {
// 可以访问类的成员变量和其它成员函数
}
};
class BaseClass {
};
class DerivedClass : public BaseClass { // 公有继承
// 继承了BaseClass的成员
};
class BaseClass {
public:
virtual void doSomething() {
// 基类的实现
}
};
class DerivedClass : public BaseClass {
public:
void doSomething() override { // 重写基类函数
// 派生类的实现
}
};
class AbstractClass {
public:
virtual void pureVirtualFunction() = 0; // 纯虚函数
};
慕课C++中高级工程师,面向对象编程的这些概念提供了一种强大的工具,用于设计复杂软件系统,使得代码更加模块化、易于理解和维护。C++的面向对象特性还支持其他高级概念,如模板(templates)、异常处理(exception handling)和命名空间(namespaces),这些都有助于构建大型和复杂的软件应用程序。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。