online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
/****************************************************************************** Online C++ Compiler. Code, Compile, Run and Debug C++ program online. Write your code in this editor and press "Run" button to compile and execute it. *******************************************************************************/ #include <iostream> #include "Broker.h" using namespace std; int main() { cout<<"Hello World"; return 0; }
#ifndef DEF_Broker #define DEF_Broker #include <iostream> #include "Publisher.h" class Broker : Publisher { static Broker *instance; Broker(); public: static Broker* getInstance() { if(!instance) { instance = new Broker(); } return instance; } void getNotify(); }; #endif
#ifndef TOPIC_H #define TOPIC_H #include <iostream> #include <list> #include <string> class Topic { public: std::string msg; Topic(){} Topic(std::string msg); }; #endif
#include "Broker.h" #include "Subscriber.h" Broker *Broker::instance = 0; // Null, because instance will be initialized on demand. void Broker::getNotify() { for(auto sub : SubscriberList) { if(t.msg == "Hello World") { SubCount++; std::cout << SubCount << " - "; sub->update(t.msg); } else if(t.msg == "Ping") { std::cout << "Ping" << std::endl; sub->update("Pong"); } } } Broker::Broker() { }; // Private constructor so that no objects can be created.
#include "Publisher.h" #include "Broker.h"//needed for broker->getNotify() int Publisher::SubCount = 0; // Initialize static member SubCount void Publisher::notify(std::string msg) { broker->getNotify(); // this not working } void Publisher::AddSub(Subscriber *sub) { SubscriberList.push_back(sub); }
#ifndef PUBLISHER_H #define PUBLISHER_H #include <list> #include "Topic.h" class Broker;//needed for Borker *broker class Subscriber;//needed for Subscriber* class Publisher { protected: std::list<Subscriber*> SubscriberList; static int SubCount; public: Topic t; Broker *broker;// = broker->getInstance(); Publisher(){} Publisher(Topic t) { this->t = t; }; void AddSub(Subscriber *sub); void notify(std::string msg); }; #endif
#ifndef SUBSCRIBER_H #define SUBSCRIBER_H #include <string> class Subscriber { public: void update(std::string msg); }; #endif
#include "Subscriber.h" #include <iostream> void Subscriber::update(std::string msg) { std::cout << msg << std::endl; }
#include "Topic.h" Topic::Topic(std::string msg) { this->msg = msg; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue