这是我的班级:
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中的矢量数据中的字段作为数组中的参数传递。你能帮帮我吗?
答案 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 );
};