online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
#include <iostream> class A { public: void foo() { std::cout << 'A'; } virtual void virtual_foo() { std::cout << 'A'; } virtual ~A() = default; // Если в классе есть хотя бы один виртуальный метод, то рекомендуется делать и виртуальный деструктор }; class B : public A { public: void foo() { std::cout << 'B'; } void virtual_foo() override { std::cout << 'B'; } }; int main(){ A* a = new A(); B* b = new B(); A* bb = b; // Тот же объект класса B, но указатель приведен к другому типу a->foo(); // A b->foo(); // B bb->foo(); // A - метод определяется типом указателя/ссылки в процессе компиляции std::cout << '\n'; a->virtual_foo(); // A b->virtual_foo(); // B bb->virtual_foo(); // B - метод определяется "настоящим" типом объекта в рантайме // Здесь утечка памяти return 0; }

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