设为首页 加入收藏

TOP

1.1.5 在父类和子类中定义重载函数
2013-10-07 00:17:49 来源: 作者: 【 】 浏览:55
Tags:1.1.5 类和 子类 定义 重载 函数

1.1.5  在父类和子类中定义重载函数

前面介绍过,重载函数可以定义在全局或某个类中,其实不仅如此,重载还可以发生在父类和子类中。请看示例1.3。

示例清单1.3

#include "stdio.h"
#include "string.h"
class CMessage
{
public:
CMessage(){};
void ShowMessage(const char* Text ,const char* Caption)
{
printf("Message: Text=%s. Caption=%s\n",Text,Caption);
}
void ShowMessage(const char* Text ,unsigned int Type)
{
printf("Message: Text=%s. Type=%d\n",Text,Type);
}
void ShowMessage(const char* Text)
{
printf("Message: Text=%s\n",Text);
}
};
class COKMessage :public CMessage
{
public:
COKMessage(){};
void ShowMessage(const char* Text ,const char* Caption)
{
char TextForOK[40];
strcpy(TextForOK,"OK,");
strcat(TextForOK,Text);
CMessage::ShowMessage( TextForOK , Caption); 
}
void ShowMessage(const char* Text ,unsigned int Type)
{
char TextForOK[40];
strcpy(TextForOK,"OK,");
strcat(TextForOK,Text);
CMessage::ShowMessage(TextForOK , Type); 

}
void ShowMessage(const char* Text )
{
char TextForOK[40];
strcpy(TextForOK,"OK,");
strcat(TextForOK,Text);
CMessage::ShowMessage(TextForOK); 
}
};
int main()
{
COKMessage OKMessage;
OKMessage.ShowMessage("Welcom");
 OKMessage.CMessage::ShowMessage("Welcom");
 return 0;
}
程序输出结果:
Message: Text=OK,Welcom
Message: Text=Welcom

子类与父类中存在同名的成员函数,称为重载。在上例中,子类与父类的3个成员函数不仅名称相同,声明也完全一致。这种父子声明一致的重载,不可能通过参数类型或数量确定调用函数,而是通过在父类的成员函数前加T::进行区分(其中T为父类名),如上例的CMessage::ShowMessage("Welcom")。
【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇1.9.2 视频回放技术分析 下一篇1.1.4 编译器调用重载函数的规则

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: