设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
帮我看段代码
返回列表
发新帖
帮我看段代码
[复制链接]
11
|
2
|
2009-4-30 12:00:05
|
显示全部楼层
|
阅读模式
#include "stdafx.h"
using namespace System;
interface class IBase1//接口IBase1
{
void same();
void dif(int);
void f1();
};
interface class IBase2//接口IBase2
{
void same();
void dif(int);
void f2();
};
ref class COne:public IBase1,public IBase2//类继承多个接口
{
public:
// 继承不同接口中相同的方法定义,实现成同一个方法
virtual void same()
{
Console::WriteLine("implement both IBase1::same() and IBase2::same()");
}
//继承不同接口中相同的方法定义,显式重载,实现成不同的方法
virtual void dif1(int i) = IBase1::dif
{
Console::WriteLine("In COne::IBase1::dif({0})",i.ToString());
}
virtual void dif2(int i) = IBase2::dif
{
Console::WriteLine("In COne::IBase2::dif({0})",(i+1).ToString());
}
virtual void f1()//不同的方法不用指定所指接口
{
Console::WriteLine("In COne::IBase1::f1()");
}
virtual void f2()
{
Console::WriteLine("In COne::IBase2::f2()");
}
};
int main(array ^args)
{
IBase1^ p1=gcnew COne();
IBase2^ p2=(IBase2^)(p1);//将p1转换成IBase2类型
p1->same();
p1->dif(1);
p1->f1();
p2->same();
p2->dif(1);
p2->f2();
Console::ReadLine();
return 0;
}
托管代码.应该也基本能看懂~~分析程序如何运行就成
是托管C++
wanfustudio 这样的回答一率投诉
回复
使用道具
举报
千问
|
2009-4-30 12:00:05
|
显示全部楼层
我没装VS。以下是猜测结果!p1->same();//这两个肯定是相同的p1->dif(1);//运行IBase1p1->f1(); //运行IBase1p2->same();//这两个肯定是相同的p2->dif(1);//运行IBase2p2->f2(); //查了一下资料,接口没有此方法。但你定义的是COne类,那里面有此方法。所以应该会运行IBase2这都是根据类继承的多态性决定的!...
回复
使用道具
举报
千问
|
2009-4-30 12:00:05
|
显示全部楼层
C# ?不懂...
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行