1.STL模板类的继承符合普通的继承规则
*STL提供的模板类有时并不符合需求,例如,vector类并没有提供下标越界检测。这时便可以通过简单的继承,达到目的。
Example:
#include <iostream>
#include<vector>
#include<initializer_list>
using namespace std;
template<typename T>
public:
explicit myVector ():vector<T>(){};
explicit myVector (size_t n, const T& val = T()):vector<T>(n,val){}
myVector (const myVector& x):vector<T>(x){}
myVector (initializer_list<T> il):vector<T>(il){}
myVector(T *first, T *last):vector<T>(first,last){}
T& operator[] (size_t n);
const T& operator[] (size_t n)const;
*STL提供的模板类有时并不符合需求,例如,vector类并没有提供下标越界检测。这时便可以通过简单的继承,达到目的。
Example:
#include <iostream>
#include<vector>
#include<initializer_list>
using namespace std;
template<typename T>
class myVector:public vector<T>
{public:
explicit myVector ():vector<T>(){};
explicit myVector (size_t n, const T& val = T()):vector<T>(n,val){}
myVector (const myVector& x):vector<T>(x){}
myVector (initializer_list<T> il):vector<T>(il){}
myVector(T *first, T *last):vector<T>(first,last){}
T& operator[] (size_t n);
const T& operator[] (size_t n)const;