第3行(vector :: push_back)引发此错误
No matching constructor for initialization of 'CCoordinate'
当试图编译这个
main(){
[...]
1 vector<CCoordinate> coordinates;
2 CCoordinate * a = new CCoordinate();
3 coordinates.push_back(*a);
[...]
}
但是CCoordinate类确实具有公共构造函数
public:
CCoordinate(float X = 0, float Y = 0);
CCoordinate(CCoordinate& orig);
~CCoordinate();
我想念什么?在vector :: pushback(* object)中解引用对象适用于图元,例如像整数
问候
克里斯多夫
最佳答案
复制构造函数应通过const
引用获取参数:
CCoordinate(const CCoordinate& orig);
这将允许从临时对象构造新对象。
您也不需要任何动态分配,只需编写
coordinates.push_back(CCoordinate());
关于c++ - vector “没有匹配的构造函数来初始化”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20439950/