C++ 适配器经典代码
时间: 2023-11-14 18:23:25 浏览: 31
C++ 适配器是一种设计模式,用于将一种接口转换成另一种接口。下面是一些经典的适配器代码示例:
1. 类适配器
类适配器通过多重继承来实现适配器功能。它继承自原始类和目标接口,并将目标接口的方法转发到原始类的相应方法上。
```c++
// 原始类
class Adaptee {
public:
void specificRequest() {
// ...
}
};
// 目标接口
class Target {
public:
virtual void request() = 0;
};
// 适配器类
class Adapter : public Adaptee, public Target {
public:
void request() override {
specificRequest();
}
};
```
2. 对象适配器
对象适配器通过组合一个原始类对象来实现适配器功能。它实现目标接口,并在其方法中调用原始类对象的方法。
```c++
// 原始类
class Adaptee {
public:
void specificRequest() {
// ...
}
};
// 目标接口
class Target {
public:
virtual void request() = 0;
};
// 适配器类
class Adapter : public Target {
public:
Adapter(Adaptee* adaptee) : m_adaptee(adaptee) {}
void request() override {
m_adaptee->specificRequest();
}
private:
Adaptee* m_adaptee;
};
```
3. 函数适配器
函数适配器通过函数指针或函数对象来实现适配器功能。它将原始函数的参数和返回值转换为目标函数的参数和返回值。
```c++
// 原始函数
int oldFunc(int x, int y) {
// ...
}
// 目标函数
int newFunc(int x) {
// ...
}
// 适配器函数
int adapterFunc(int x) {
return newFunc(oldFunc(x, 0));
}
```