为了账号安全,请及时绑定邮箱和手机立即绑定

C+模板类型

C+模板类型

C++ C
慕哥6287543 2019-07-02 15:41:36
C+模板类型我有课template<size_t N, size_t M>class Matrix {     // ....};我想做一个typedef创建一个Vector(列向量),相当于Matrix尺寸是N和1。类似的东西:typedef Matrix<N,1> Vector<N>;这会产生编译错误。以下内容创建了类似的内容,但并不完全是我想要的:template <int N>class Vector: public Matrix<N,1>{ };是否有解决方案或不太昂贵的解决办法/最佳实践?
查看完整描述

3 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

加入C+11别名声明,它们是typedef,允许模板:

template <size_t N>using Vector = Matrix<N, 1>;

类型Vector<3>等于Matrix<3, 1>.


在C+03中,最接近的近似是:

template <size_t N>struct Vector{
    typedef Matrix<N, 1> type;};

在这里,类型Vector<3>::type等于Matrix<3, 1>.


查看完整回答
反对 回复 2019-07-02
?
青春有我

TA贡献1784条经验 获得超8个赞

太好了,我还没见过C+0x的这一部分,我已经有一段时间一直在抱怨模板化的类型.我想我应该更彻底地读一下最后的草稿。 

查看完整回答
反对 回复 2019-07-02
?
繁花如伊

TA贡献2012条经验 获得超12个赞

取决于他的目标。当组合完成时,我避免继承(是的,继承构造函数将使这两种情况都变得更容易),但我也避免了在tyhuif会这样做时进行组合。

查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 569 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信