【发布时间】:2013-03-10 20:55:31
【问题描述】:
假设我们有两个 C++/CLI 接口声明具有不同返回类型的 Foo() 成员。
public interface class InterfaceA
{
bool Foo();
};
public interface class InterfaceB
{
int Foo();
};
我们在这里要做的是有一个类,实例化一个可以通过上述接口访问的对象。因此,直接的方法是:
public ref class Class : InterfaceA, InterfaceB
{
virtual bool Foo() = InterfaceA::Foo { return true; }
virtual int Foo() = InterfaceB::Foo { return 10; }
};
不幸的是,这给了我们编译器错误“重载的函数仅与返回类型不同”。这个 C++/CLI 限制有什么解决方法吗?
【问题讨论】:
-
一句话不,这是一个设计问题,而不是 C++\CLI 或任何其他语言
-
嗯,c# 允许我在一个类中显式地实现两个具有不同返回值的同名方法。所以我不会说它与 c++/cli 无关。
标签: interface c++-cli explicit