Oop C++;从std::vector继承以实现容器类型?
继承标准库类以实现新容器类型的正确方法是什么 我假设从std::vector继承不是完全正确的方法,尽管我不知道它是否真的有效 我假设std::vector继承自另一个类,并且我应该继承该类以实现新类型的容器,这是否正确,如果正确,应该继承什么 还有什么我需要知道的吗?例如,我可能需要对std::iterator对象组进行哪些修改?类继承自vector 矩阵.hOop C++;从std::vector继承以实现容器类型?,oop,inheritance,c++11,stl,polymorphism,Oop,Inheritance,C++11,Stl,Polymorphism,继承标准库类以实现新容器类型的正确方法是什么 我假设从std::vector继承不是完全正确的方法,尽管我不知道它是否真的有效 我假设std::vector继承自另一个类,并且我应该继承该类以实现新类型的容器,这是否正确,如果正确,应该继承什么 还有什么我需要知道的吗?例如,我可能需要对std::iterator对象组进行哪些修改?类继承自vector 矩阵.h #include <vector> #include <iostream> template<type
#include <vector>
#include <iostream>
template<typename T>
class Matrix: public std::vector<T>
{
public:
using std::vector<T>::vector;
private:
};
#包括
#包括
样板
类矩阵:公共std::vector
{
公众:
使用std::vector::vector;
私人:
};
矩阵.cpp
int main()
{
Matrix<int> dani;
dani.push_back(2);
dani.push_back(3);
for(const auto& it: dani)
std::cout << it << " ";
}
intmain()
{
矩阵达尼;
丹尼。推回(2);
丹尼。推回(3);
用于(康斯特汽车和it公司:丹尼)
std::cout您想实现什么容器类型?很可能您不需要这样做,最好使用组合而不是继承。这个问题已经被问过很多次了。这里有一个:也有很多很好的讨论(关于C#,但是这些主题非常广泛)
#include <vector>
#include <iostream>
class Vector
{
public:
Vector();
Vector(int);
Vector(int, int);
~Vector();
std::vector<std::vector<T>> v;
bool Check_Size() ;
template<typename T1> bool Check_Size(std::vector<T1>&) ;
template<typename T1> bool Check_Size_Fast(std::vector<T1>&);
void Print();
void Transponse();
void Inverse();
void Inverse2();
void Inverse3();
template<class T,class Q>
friend std::vector<std::vector<T>> operator* (const Q , Vector<T> );
...
};