我正在尝试为自定义类型创建一个构造函数,但由于某种原因,它试图调用,我猜是另一个类的构造函数定义中的构造函数。找不到任何符合相同症状的东西我还有其他问题,因为我可能不知道我在找什么。
当我打电话时:
LatLngBounds clusterBounds(&boundsNorthEast, &boundsSouthWest);
在 main.cpp 中,在 LatLngBounds.cpp 中,我得到“No matching funciton for call to 'LatLng:LatLng()”在线上抛出两次:
LatLngBounds::LatLngBounds(LatLng &newSouthWest, LatLng &newNorthEast)
有人有什么想法吗?
德鲁·J·索恩。
IDE:Xcode 3.2(针对 Debug 10.5)
操作系统:OSX 10.6
编译器:GCC 4.2
Arch:x86_64
主.cpp:
std::vector<std::string> argVector;
... fill up my argVector with strings..
vector<double> boundsVector = explodeStringToDouble(argVector[i]);
LatLng boundsNorthEast(0, boundsVector[0], boundsVector[1]);
LatLng boundsSouthWest(0, boundsVector[2], boundsVector[3]);
LatLngBounds clusterBounds(&boundsNorthEast, &boundsSouthWest);
LatLngBounds.h
#ifndef __LATLNGBOUNDS
#define __LATLNGBOUNDS
#include "LatLng.h"
class LatLngBounds {
private:
LatLng northEast;
LatLng southWest;
public:
LatLngBounds(LatLng&,LatLng&);
};
#endif
LatLngBounds.cpp
#include "LatLngBounds.h"
#include "LatLng.h"
LatLngBounds::LatLngBounds(LatLng &newSouthWest, LatLng &newNorthEast)
{
this->southWest = newSouthWest;
this->northEast = newNorthEast;
};
拉丁文
#ifndef __LATLNGDEF
#define __LATLNGDEF
class LatLng {
public:
LatLng(int,double,double);
private:
double lat, lng;
int id;
};
#endif
拉丁文.cpp
#include "LatLng.h"
LatLng::LatLng(int newId, double newLat, double newLng)
{
/* Grab our arguments */
id = newId;
lat = newLat;
lng = newLng;
};