小编Rom*_*man的帖子

在派生类中使用基类的模板参数

考虑C++中的以下情况:

template<int n>
class Base { ... };

class Derived3 : public Base<3> {
  // a complicated body, making use of n=3
};

class Derived7 : public Base<7> {
  // a completely different body, making use of n=7
};
Run Code Online (Sandbox Code Playgroud)

里面的Derived3成员函数,我想明确地使用n=3了,里面Derived7,n=7而不硬编码的数字,即,仍参考就像一个模板参数n.我想到了以下选项:

  1. 同时模板派生类n,然后使用typedef.这样,派生类知道n:

    template<int n>
    class DerivedTemplate3 : public Base<n> { ... };
    typedef DerivedTemplate3<3> Derived3;
    
    template<int n>
    class DerivedTemplate7 : public Base<n> { ... }; …
    Run Code Online (Sandbox Code Playgroud)

c++ polymorphism templates

3
推荐指数
1
解决办法
874
查看次数

标签 统计

c++ ×1

polymorphism ×1

templates ×1