【发布时间】:2012-12-06 18:26:20
【问题描述】:
我认为这在 C++ 中是不可能的,我必须有哪些选项来模拟这种行为?
【问题讨论】:
-
你是指java方式的接口(即继承抽象基类X),还是单纯的说它支持一组操作?
-
如果您尝试使用该界面,您肯定会注意到它是否缺席。
我认为这在 C++ 中是不可能的,我必须有哪些选项来模拟这种行为?
【问题讨论】:
将std::is_base_of 用作:
template<typename T>
class A
{
static_assert(std::is_base_of<IMyInterface, T>::value,
"T must derive from IMyInterface");
};
你也可以在函数模板中做同样的事情。
【讨论】:
你可以使用std::is_base_of<YourInterface, YourParameter>,如果结果为false则报错。请记住这是 C++11。
【讨论】:
一些多态接口还是一些静态接口? 后者可以通过Boost Concepts查看。
【讨论】: