从函数中作为参数传递的对象访问矢量数据

时间:2015-12-06 13:18:27

标签: c++ visual-c++ vector

这是我的班级:

 class Array
    {
    private:
        int size;
        vector<int> *data;
    public:
        ArrayCon();
        ~ArrayDes();
        void push_back(Array obj) const;
    };

这是我的构造函数:

Array::Array()
{
    data = new vector<int>;;
    size = 0;
}

这是push_back(array boj)const函数的实现

void Array::push_back(Array obj) const
{
    for (auto i = 0; i < obj.size; i++)
    {
        size++;
        data->push_back(obj.data[i]); // obj.data[i] is highlighted as wrong syntax
    }
}

我想访问obj中的矢量数据中的字段作为数组中的参数传递。你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

如果我理解正确你可以通过以下方式实现

class Array
{
private:
    vector<int> data;
public:
    Array();
    ~Array();
    void push_back( const Array &obj );
};

void Array::push_back( const Array &obj )
{
    data.insert( data.end(), obj.data.begin(), obj.data.end() );
}

考虑到必须在没有限定符push_back的情况下声明函数const

您无需拥有数据成员size,因为该向量具有自己的成员函数size()

构造函数和析构函数也应与类的名称相同。

无需明确定义构造函数或析构函数

然而,构造函数可以定义为

Array::Array()
{
}

或者你可以写一下课程定义

class Array
{
private:
    vector<int> data;
public:
    Array() = default;
    ~Array() = default;
    void push_back( const Array &obj );
};