This message is issued immediately after the "Cannot create instance of abstract class 'classname' error message and is intended to make it easier to figure out why a particular class is considered abstract by the compiler.
For example, consider the following example of an illegal attempt to instantiate an abstract class:
struct VB { virtualvoid f() = 0; virtualvoid g() = 0; virtualvoid h() = 0; }; struct D1 : virtual VB { void f(); }; struct D2 : virtual VB { void h(); }; struct DD : D1, D2 { } v; // error 'DD' is an abstract class
The above code will cause the following two error messages:
Error TEST.CPP 21: Cannot create instance of abstract class 'DD'
Error TEST.CPP 21: Class 'DD' is abstract because of 'VB::g() = 0'
Copyright(C) 2008 CodeGear(TM). All Rights Reserved.
|
What do you think about this topic? Send feedback!
|