考虑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.我想到了以下选项:
同时模板派生类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)