#include <iostream> using namespace std; class A { public: virtual void testA() = 0; virtual void print() = 0; }; class B :public A { public: virtual void testA() = 0; virtual void print() override { std::cout << "B::print" << std::endl; } virtual void testB() { std::cout << "testB" << std::endl; } }; class C :public B { public: virtual void testA(){} virtual void print() override { std::cout << "C::print" << std::endl; } }; int main() { C c; c.print(); c.testB(); return 0; }