C++ 继承运算符=
C++ Inheritance operator=
我知道这个问题以前有人问过;但是,我不明白解决方案。我正在尝试为 std::vector 创建一个子类,它能够独立成员函数(例如push_back
(,但不能独立运算符(例如=
(。 从这个例子来看,它似乎应该自动发生......向量类不同吗?
#include <iostream>
#include <vector>
using namespace std;
template <class T>
class FortranArray1 : public std::vector<T> {
public:
T & operator()(int row)
{
return (*this)[row-1];
}
};
int main()
{
vector <double> y;
y = {3}; // works
vector <double> z = y; //works
FortranArray1<double> x;
x = {3}; // doesn't work
x.push_back(3); // works
cout << y[0] << x[0] << ", " << x(1) ;
return 0;
}
您可以使用using
来引入基类的operator=
template <class T>
class FortranArray1 : public std::vector<T> {
public:
using std::vector<T>::operator=;
T & operator()(int row){return (*this)[row-1];}
};
您可能还需要using std::vector<T>::vector;
来介绍它的构造函数
相关文章:
- 通过继承类使用来自不同命名空间的运算符
- 运算符继承和 cpp 核心准则 c.128 的问题
- 如果我真的真的想从 STL 容器继承,并且我继承构造函数并删除新运算符,会发生什么?
- 继承模板化转换运算符
- C++ 继承运算符=
- 在继承的模板类中使用下标 [] 运算符
- 如何调用继承的重载运算符<<并在派生类的输出中添加更多文本?
- C++模板化类上继承的运算符'<<'
- 类继承和运算符重载
- 通过继承重载运算符会导致歧义
- 使用继承的指针列表复制构造函数或重载运算符=
- C++中移动赋值运算符的继承
- 如何在C++上的多个继承上下文上使用特定基类中的运算符
- 继承类中的比较运算符
- 继承 C++14 中的模板化运算符 =:g++ 和 clang++ 的不同行为
- 具有继承的未声明标识符(运算符 ostream)
- 如何使用运算符编写可继承的模板类
- C++运算符继承和重载
- 重载的强制转换运算符继承(Visual C++)
- 赋值运算符继承