вызов чистой виртуальной функции из конструктора базового класса

У меня есть базовый класс MyBase, который содержит чисто виртуальную функцию:

void PrintStartMessage() = 0

Я хочу, чтобы каждый производный класс вызывал его в своем конструкторе

тогда я положил его в базовый класс (MyBase) конструктор

 class MyBase
 {
 public:

      virtual void PrintStartMessage() =0;
      MyBase()
      {
           PrintStartMessage();
      }

 };

 class Derived:public MyBase
 {     

 public:
      void  PrintStartMessage(){

      }
 };

void main()
 {
      Derived derived;
 }

но я получаю ошибку компоновщика.

 this is error message : 

 1>------ Build started: Project: s1, Configuration: Debug Win32 ------
 1>Compiling...
 1>s1.cpp
 1>Linking...
 1>s1.obj : error LNK2019: unresolved external symbol "public: virtual void __thiscall MyBase::PrintStartMessage(void)" (?PrintStartMessage@MyBase@@UAEXXZ) referenced in function "public: __thiscall MyBase::MyBase(void)" (??0MyBase@@QAE@XZ)
 1>C:\Users\Shmuelian\Documents\Visual Studio 2008\Projects\s1\Debug\s1.exe : fatal error LNK1120: 1 unresolved externals
 1>s1 - 2 error(s), 0 warning(s)

Я хочу, чтобы сила всех производных классов ...

A- implement it

B- call it in their constructor 

Как я должен это сделать?

Ответы на вопрос(6)

Ваш ответ на вопрос