我需要一个代码根据调用的接口(interface)运行,例如下面的代码:
public class VirtualStreamingFiler : IBFiler, IAFiler
{
public VirtualStreamingFiler()
{
cout << "I like " << interface_func_type_return() << " too!\n";
}
}
interface_func_type_return()会根据使用的接口(interface)返回一个字符串,如果是IAFiler则返回“A_string_request”,如果是IBFiler则返回“general_purpose_B”
int main ()
{
IAFiler _vpnFiler = new VirtualStreamingFiler();
return 0;
}
所以这里的输出将是:
A_string_request
我该怎么做?
谢谢
最佳答案
如果你需要一个函数来做两件不同的事情,你就需要两个不同的函数。一个类中的两个不同函数可以具有相同名称和相同签名的唯一方法是,如果它们中至少有一个不是虚拟的,并且它们来自不同的基类。
class A
{
public: void func () { funcA(); }
private: void funcA() = 0;
};
class B
{
public: void func () { funcB(); }
private: void funcB() = 0;
};
class AB : public A, public B
{
void funcA() { do something; }
void funcB() { do something else; }
};
然而,这是一个非常有问题的设计,在实现之前我会三思而后行。
关于c++ - 如何根据接口(interface)类型运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46137958/