online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
#include <iostream> #include <memory> class Base { public: virtual ~Base() = default; virtual std::unique_ptr<Base> clone() const { std::cout << "Base::cloneRAII()\n"; return std::make_unique<Base>(*this); } virtual void execute() const { std::cout << "Base::process()\n"; } }; class Derived : public Base { public: virtual std::unique_ptr<Base> clone() const override { std::cout << "Derived::clone()\n"; return std::make_unique<Derived>(*this); } virtual void apply() const { std::cout << "Derived::apply()\n"; } virtual void execute() const override { std::cout << "Derived::process()\n"; } }; int main() { Derived d1; std::unique_ptr<Base> b = d1.clone(); // ... b->execute(); // ... // downcast Base -> Derived Derived *d2 = dynamic_cast<Derived *>(b.get()); if (d2) { d2->apply(); } // ... }

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