再问“关于对象的继承”

iBear 2002-08-24 02:49:08
在delphi中:
procedure TSomeClass.SomeMothed;
begin
...
inherited;
...
end;
当TSomeClass的基类中实现了SomeMothed方法的话,将在inherited处调用该方法;否则就忽略。

但在c++中:
void TSomeClass::SomeMothed(void)
{
...
TBaseClass::SomeMothed();//TBaseClass为TSomeClass的基类
...
}
如果基类中实现了SomeMothed方法的话,没问题;
但要是基类中没有实现该方法,上述代码显然连编译也不能通过的,

因此问题的关键是如何在c++(BCB)中实现delphi的继承方式!
...全文
36 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolpony 2002-08-24
  • 打赏
  • 举报
回复
因为c++是强类型语言,当访问一个成员函数时,c++要证明该成员函数在类中存在。
按kingcaiyao(AKing) 说的做,一定没问题。
但是如果你在这个类中定义了“纯虚函数”那他就是一个抽象类。
你不能生成这个类的实例。但是可以声明一个抽象类的指针或应用。
具体的你可以去看看有关的书,都讲的很清楚。
kingcaiyao 2002-08-24
  • 打赏
  • 举报
回复
你这样:
将SomeMethod这个函数定义在父类的public域,并声明它为纯虚拟的,然后在子类中对它进行重载就可以了。即是说:
class BaseClass
{
private:
public:
virtual void SomeMethod()=0;
}
class MyClass:public BaseClass
{
private:
public:
virtual void SomeMethod()
{
ShowMessage("I am AKing");
}
}
Main.cpp
int main(int argc,char *argv[])
{
MyClass pClass;
pClass.SomeMethod();
getch();
}

13,825

社区成员

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

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