Программы на C++. Форум разработчиков
Anonymous
Простая проблема с шаблоном издателя/подписчика с несколькими подписками
Сообщение
Anonymous » 30 авг 2025, 16:02
Код: Выделить всё
#include
#include
class Subscriber {
public:
virtual void Notify(float f) = 0;
};
class Publisher {
public:
constexpr void AddSubscriber(Subscriber* sub) { subs_.push_back(sub); };
void Notify(float v) {
for (auto& s : subs_) {
if (s) {
s->Notify(v);
}
}
}
private:
std::vector subs_;
};
class DriverA : public Publisher {
public:
using Subscriber = ::Subscriber;
void Activate(float f) { Notify(f); }
};
class DriverB : public Publisher {
public:
using Subscriber = ::Subscriber;
void Activate(float f) { Notify(f); }
};
class Handler : public DriverA::Subscriber, public DriverB::Subscriber {
public:
constexpr Handler(DriverA& da, DriverB& db) {
da.AddSubscriber(this);
db.AddSubscriber(this);
}
float Val() const { return val_; }
private:
void DriverA::Subscriber::Notify(float v) override {
val_ = v;
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79751133/simple-publisher-subscriber-pattern-problem-with-multiple-subscriptions[/url]
1756558924
Anonymous
[code]#include #include class Subscriber { public: virtual void Notify(float f) = 0; }; class Publisher { public: constexpr void AddSubscriber(Subscriber* sub) { subs_.push_back(sub); }; void Notify(float v) { for (auto& s : subs_) { if (s) { s->Notify(v); } } } private: std::vector subs_; }; class DriverA : public Publisher { public: using Subscriber = ::Subscriber; void Activate(float f) { Notify(f); } }; class DriverB : public Publisher { public: using Subscriber = ::Subscriber; void Activate(float f) { Notify(f); } }; class Handler : public DriverA::Subscriber, public DriverB::Subscriber { public: constexpr Handler(DriverA& da, DriverB& db) { da.AddSubscriber(this); db.AddSubscriber(this); } float Val() const { return val_; } private: void DriverA::Subscriber::Notify(float v) override { val_ = v; std::cout Подробнее здесь: [url]https://stackoverflow.com/questions/79751133/simple-publisher-subscriber-pattern-problem-with-multiple-subscriptions[/url]