有没有可能继承模板类的一切,只是重写一些专门用于int,double或float的函数?
有没有办法写出类似这样的东西?
template<typename T, size_t N>
class Container<int, N> : public Container<T, N> {
};
不,你得换个名字。
template<class T, size_t N>
struct ContainerBase:std::array<T,N> {
// some methods here
};
template<class T, size_t N>
struct Container:ContainerBase<T,N> {
// inherit any constructors:
using ContainerBase<T,N>::ContainerBase;
};
template<size_t N>
struct Container<int, N>:ContainerBase<int,N> {
using ContainerBase<int,N>::ContainerBase;
// overload (not override) methods here
};