帮我看段代码

来源:百度知道 编辑:UC知道 时间:2024/06/15 03:06:32
#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

我没装VS。以下是猜测结果!
p1->same();//这两个肯定是相同的
p1->dif(1);//运行IBase1
p1->f1(); //运行IBase1
p2->same();//这两个肯定是相同的
p2->dif(1);//运行IBase2
p2->f2(); //查了一下资料,接口没有此方法。
但你定义的是COne类,那里面有此方法。所以应该会运行
IBase2

这都是根据类继承的多态性决定的!

C# ?
不懂