小问题!
最近学习<<c++builder>>时碰到一个小问题(以下这个例子完全安书上的):
//--------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include<iostream>
using namespace std;
//---------------------------------------------------------------------
#pragma argsused
class func1 :public TObject
{
public:
func1();
int virtual virtbar(){return 5;}
int __declspec(dynamic) dynbar(){return 5;} //动态函数
};
//---------------------------------------------------------------------
class func2:public func1
{
public:
func2();
};
//---------------------------------------------------------------------
class func3:public func2
{
public:
func3();
int virtbar(){return 10;}
int dynbar(){return 10;} //编译出错在这里
};
int main(int argc, char* argv[])
{
func3* Func3=new func3;
func1* Func1=Func3;
cout<<"func3->dynbar:"<<Func3->dynbar() <<endl;
cout<<"func3->virtbar:"<<Func3->virtbar() <<endl;
cout<<"func1->dynbar:"<<Func1->dynbar()<<endl;
cout<<"func1->virtbar:"<<Func1->virtbar() <<endl;
delete Func3;
func2* Func2=new func2;
cout<<"func2->dynbar:"<<Func2->dynbar()<<endl;
cout<<"func2->virtbar:"<<Func2->virtbar() <<endl;
delete Func2;
return 0;
}
//---------------------------------------------------------------------
[C++ Error] Unit1.cpp(29): E2113 Virtual function 'func3::dynbar()' conflicts with base class 'func1'
请问这是为什么 啊!应该怎么改啊!还请指教!