gpt4 book ai didi

c++ - 在构造函数中使用对象

转载 作者:搜寻专家 更新时间:2023-10-31 00:39:12 27 4
gpt4 key购买 nike

我正在创建我自己的继承 STL 的 vector 类。创建对象时遇到问题。

这是我的类(class)。

using namespace std;

template <class T>
class ArithmeticVector : public vector<T>{
public:
vector<T> vector; //maybe I should not initalize this
ArithmeticVector(){};
ArithmeticVector(T n) : vector(n){
//something here
};

主要是;我叫这个;

ArithmeticVector<double> v9(5);

ArithmeticVector<int> v1(3);

我想要的是像 STL vector 类型一样创建 v9 vector 或 v1 vector 。但是我得到的是我新创建的对象中的一个 vector 。我希望我的对象首先是一个 vector 。

也许我应该在构造函数中使用那个 v1 对象?感谢您的帮助。

最佳答案

如果您需要对 std::vector 进行逐元素运算和数学运算,请使用 std::valarray。如果不是,我不明白你为什么要子类化 std::vector

不要继承 std:: 容器,它们没有虚拟析构函数,如果从指向基的指针中删除,它们会当面爆炸。

编辑 如果您需要在 std::vector 上定义操作,您可以在类外部定义运算符,并使用其公共(public)接口(interface)。

关于c++ - 在构造函数中使用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16636131/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com