合并接口,而不合并
2022-09-03 03:46:22
我在想,C++或Java有没有办法做这样的事情
Interface IF1{
....
};
Interface IF2{
....
};
function f(Object o : Implements IF1, IF2){
...
}
表示一个类型系统,允许您要求实现接口。
我在想,C++或Java有没有办法做这样的事情
Interface IF1{
....
};
Interface IF2{
....
};
function f(Object o : Implements IF1, IF2){
...
}
表示一个类型系统,允许您要求实现接口。
你可以在Java中做到这一点:
public <I extends IF1 & IF2> void methodName(I i){
....
}
通过这种方式,你强制I实现你的两个接口,否则它甚至不会编译。
在C++中,我们可以使用 .这必须与实际的派生类型和基本类型一起使用,并且在s的帮助下易于使用。std::is_base_of<IF1, Derived>
tempalte
template<typename T>
void f (T obj)
{
static_assert(is_base_of<IF1,T>::value && is_base_of<IF2,T>::value,
"Error: Not implementing proper interfaces.");
...
}
如果(派生)没有实现 和 ,则断言将在编译时失败。T
class
IF1
IF2