C++ Specific¶
What does cannot allocate an object of abstract type mean?¶
This means you have inherited from a superclass which has pure virtual methods, and you have failed to provide an implementation for one or more of those methods. In the context of the SDK, the most likely cause is that you’re using an implementation class with required methods. For example, suppose your package instance inherits from the ChannelModItem Interface. It’s not enough to simply inherit from the implementation.
C++
class CInstance
: public CLxImpl_PackageInstance,
public CLxImpl_ChannelModItem
{
...
};
If you attempt to initialize a polymorph based on this class it will fail with the abstract type error. That’s because the cmod_Flags() method is pure virtual and must be implemented by your class. Of course, for the channel modifier to do anything you need a flags method, so this isn’t really a hardship. It’s just something to be aware of when starting the implementation for your SDK objects.