小问题!

Matthew 2003-03-15 04:06:57
最近学习<<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'
请问这是为什么 啊!应该怎么改啊!还请指教!
...全文
30 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
swordkiller1104 2003-03-15
  • 打赏
  • 举报
回复
古人云:尽信书则不如无书
Matthew 2003-03-15
  • 打赏
  • 举报
回复
但是书本上也是这样的啊!
gfh_79_0 2003-03-15
  • 打赏
  • 举报
回复
在func1你已经定义过了。
func3::dynbar()与基类定义冲突。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧