online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include <iostream> #include "base.hpp" #include "child.hpp" #include "someclass.hpp" using namespace std; int main() { cout<<"Hello World"; Child ch; return 0; }
#ifndef CHILD_H #define CHILD_H #include "base.hpp" #include <memory> #include "someclass.hpp" class Child : public Base { public: void callbackFunction(std::string data); std::unique_ptr<Callback<Child>> callback; //add declaration for default constrcutor Child(); }; #endif
#include "child.hpp" void Child::callbackFunction(std::string data){ /*does something*/ } Child::Child() { this->callback = std::make_unique<Callback<Child>>(this, &Child::callbackFunction); //I can call this->callback->call(data); here without problems }
#ifndef BASE_H #define BASE_H //NO NEED TO INCLUDE someclass.hpp #include <memory> class SomeClass;//FORWARD DECLARE SomeClass class Base { std::unique_ptr<SomeClass> someClass; public: //add declaration for default constructor Base(); }; #endif
#include "base.hpp" #include "someclass.hpp" //other things here Base::Base() { this->someClass = std::make_unique<SomeClass>(); }
#ifndef SOMECLASS_H #define SOMECLASS_H #include <string> //REMOVED include child.hpp from here class SomeClass { public: void someFunction(std::string data); //I think I need an instance of Callback<Child> here? }; template<class T> class Callback { public: Callback(T* instance, void (T::*function)(std::string)) { this->callbackInstance = instance; this->callback = function; } void call(std::string data) { (callbackInstance->*callback)(data); } private: T *callbackInstance; void (T::*callback)(std::string); }; #endif
#include "someclass.hpp" void SomeClass::someFunction(std::string data) { //here I want to call this "Child::callbackFunction" which should go like "this->callbackInstance->call(data)" ? }

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