class A {
public:
int value;
A(int value){
this->value = value;
}
};
class Relation{
vector<A> items;
Relation(vector<A> items){
this->items = items;
}
}
int main(){
vector<A> items;
items.push_back(A(1));
Relation r1(items);
}
如何将新对象的向量传递给另一个对象的构造函数?在第13行中,出现错误“没有匹配的函数来调用'A :: A()'“
答案 0 :(得分:1)
赞:
router.get('/', async (req, res, next) => {
// get all staff sorted by name
const allStaff = await Staff.find().sort('name');
if (!allStaff) {
res.status(404).send('No staff');
} else {
return res.status(200).send(allStaff);
}
next(ex);
});
进行了一些更改,以符合常规的C ++惯例。最重要的可能是#include <vector>
class A {
public:
int value;
A(const int value1 = 0) : value(value1) {}
};
class Relation {
std::vector<A> items;
public:
Relation(std::vector<A> items1) : items(items1) {};
}
};
int main() {
std::vector<A> items;
items.push_back(A(1));
Relation r1(items);
}
的构造函数已公开供Relation
使用。
答案 1 :(得分:0)
我想发生这种情况是因为到目前为止,Relation类中的元素是私有的,请尝试在任何声明之前添加public:
。并在类声明后以及分机主函数中使用分号(;
)。
答案 2 :(得分:0)
关系的构造函数必须是公共的。另外,不需要所有的“ this->”。它的结束是这样的:
class A {
public:
int value;
A(int value)
{
value = value;
}
};
class Relation{
vector<A> items;
public:
Relation(const vector<A>& values)
{
items = values;
}
};
int main(){
vector<A> items;
items.push_back(A(1));
Relation r1(items);
}