c++ opeddds使用回调函数
时间: 2023-11-27 10:46:55 浏览: 139
C++ 回调函数
5星 · 资源好评率100%
在C++中,可以使用回调函数来实现opeddds的一些功能。具体来说,可以通过回调函数来实现数据的订阅和发布。下面是一个使用回调函数实现数据订阅和发布的示例代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 定义回调函数类型
typedef void (*Callback)(int);
// 定义数据发布者类
class Publisher {
public:
// 添加订阅者
void addSubscriber(Callback cb) {
subscribers.push_back(cb);
}
// 发布数据
void publish(int data) {
for (auto cb : subscribers) {
cb(data);
}
}
private:
vector<Callback> subscribers;
};
// 定义数据订阅者类
class Subscriber {
public:
// 构造函数,订阅数据
Subscriber(Publisher& pub) {
pub.addSubscriber(callback);
}
// 回调函数
void callback(int data) {
cout << "Received data: " << data << endl;
}
};
int main() {
Publisher pub;
Subscriber sub(pub);
pub.publish(123);
return 0;
}
```
在上面的代码中,我们定义了一个回调函数类型Callback,它接受一个int类型的参数并返回void。然后我们定义了一个数据发布者类Publisher和一个数据订阅者类Subscriber。在Subscriber的构造函数中,我们将自己的回调函数callback添加到Publisher的订阅者列表中。当Publisher发布数据时,它会遍历订阅者列表,并依次调用每个订阅者的回调函数。
阅读全文