when i try following:
CCodec *coder = new CIndentCodec;
which is a baseclass pointer allocating memory for a object of type CIndentCodec, the compiler tells me that i can not allocate an object of abstract type 'CIndentCodec'.
Do i miss something? Why does the compiler saying that the inherited class is abstract too? I have declared the methods so it should not be abstract?
When overriding a virtual function, favour using the override specifier;
give the compiler a chance to tell you about a possible error.
In a member function declaration or definition, override ensures that the function is virtual and is overriding a virtual function from the base class. The program is ill-formed (a compile-time error is generated) if this is not true. http://en.cppreference.com/w/cpp/language/override