有人可以告诉我如何在C++中实现此Java代码吗?

  public class MyClass<T extends OtherClass>{
    ....
  }

我已经在C++中对此进行了测试:
 template<class T, class OtherClass>
 class MyClass
 {
    public:
          MyClass();
  }

但是我得到了错误:invalid use of template-name 'MyClass' without an argument list
问候

最佳答案

您可以将 std::is_base_of static_assert结合使用:

template<class T>
class MyClass
{
    static_assert( std::is_base_of< OtherClass, T >::value, "T does not extend OtherClass");

public:
    MyClass();
};

(当然,您还可以将OtherClass用作其他模板参数,以防您需要更加灵活)

09-11 18:49
查看更多