class AbstractClass {
private:
 
public:
	AbstractClass() = default;
	virtual ~AbstractClass() = default;
	virtual void SomeOperation() const = 0;
};
 
class DerivedClass : public AbstractClass {
 
public:
	DerivedClass() = default;
	~DerivedClass() = default;
 
	void SomeOperation() const override {
		std::cout << "Print something" << std::endl;
	}
};