【发布时间】:2018-02-18 15:33:14
【问题描述】:
我需要一段代码按照调用的接口运行,例如下面的代码:
public class VirtualStreamingFiler : IBFiler, IAFiler
{
public VirtualStreamingFiler()
{
cout << "I like " << interface_func_type_return() << " too!\n";
}
}
interface_func_type_return()会根据使用的接口返回一个字符串,如果IAFiler返回“A_string_request”,如果IBFiler返回“general_purpose_B”
int main ()
{
IAFiler _vpnFiler = new VirtualStreamingFiler();
return 0;
}
所以这里的输出将是:
A_string_request
我该怎么做??
谢谢
【问题讨论】:
-
假设 _vpnFiler 的丢失指针声明只是一个遗漏,您的代码在语义上与以下代码相同:
void* tmp = new VirtualStreamingFiler(); IAFiler* _vpnFiler = (IAFiler*)tmp;类型不知道在构造它的数千个周期后如何使用它。您是否考虑需要您修改接口或 Filer 类或围绕它们创建一些包装器的替代方法? -
感谢您的帮助!当然,我愿意尝试新方法,建议我如何做那个包装器? (我对编程有点陌生,所以对低级问题感到抱歉)
标签: c++ c++11 visual-c++