新手有关问题!@简单关于的多态有关问题#[100分]#

新手问题!@简单关于的多态问题###[100分]######
#include   "windows.h "
#include   "tchar.h "

interface   Base
{
public:
void   Do();
};

class   ChildA   :   Base
{
public:
void   Do()
{
MessageBox(NULL,   _T( "In   ChildA   Do. "),   _T( "多态 "),   MB_OK);
}
};

int   WINAPI   _tWinMain(HINSTANCE   hInstance,   HINSTANCE   hPrevInstance,   LPSTR   lpCmdLine,   int   nCmdShow)
{
        Base*   b   =   (Base*)new   ChildA();
        b-> Do();

        MSG   msg;
        while(GetMessage(&msg,   NULL,   0,   0)   >   0)  
        {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }

        return   (int)msg.wParam;
}

这样也编译不过去?是不是c++接口也是要有实现的啊?
------------------------------------
Error 1 error   LNK2001:   unresolved   external   symbol   "public:   void   __thiscall   Base::Do(void) "   (?Do@Base@@QAEXXZ)


------解决方案--------------------
#include "windows.h "
#include "tchar.h "

class Base
{
public:
virtual void Do()=0;
};

class ChildA : Base
{
public:
void Do()
{
MessageBox(NULL, _T( "In ChildA Do. "), _T( "多态 "), MB_OK);
}
};

int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
Base* b = (Base*)new ChildA();
b-> Do();

MSG msg;
while(GetMessage(&msg, NULL, 0, 0) > 0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return (int)msg.wParam;
}
------解决方案--------------------
interface Base
{
public:
virtual void Do()=0;
};
------解决方案--------------------
需要实现
或者
interface Base
{
public:
virtual void Do()=0;需要virtual说明是虚函数 后面的=0;表示纯虚函数
};
你的程序也不对
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
Base* b = new ChildA;
b-> Do();
return (int)msg.wParam;
}
------解决方案--------------------
C++里没有“interface”。只是VC搞了一个:
define interface class而已。

C++语言中,应该采用纯虚函数表达abstract,使用纯虚基类表达interface的思想。
------解决方案--------------------
楼主,希望你在看下书,怎么实现多态,什么叫覆盖,