我在DateTime.h上定义了这个类
class DateTime {
public:
int h;
int m;
DateTime() {};
DateTime(string & sf) {
int i = sf.find(":", 0);
string _h = sf.substr(0, sf.length() - i-1);
string _m = sf.substr(i+1, sf.length() - i);
h = atoi(_h.c_str());
m = atoi(_m.c_str());
};
}
然后在其他模块中我像这样包含它
#include <DateTime.h>
并像这样调用构造函数
string str("12:13");
DateTime dt(str);
在编译时给出了这个错误
src/problem/Reader.cpp: En la función miembro ‘void Reader::readFile(const char*)’:
src/problem/Reader.cpp:44:12: error: no hay coincidencia para la llamada a ‘(DateTime) (std::string&)’
make: *** [build/Reader.o] Error 1
答案 0 :(得分:3)
你的分号是错误的。 “};”应该是班级的最后一个。这使编译器看不到将字符串作为参数的构造函数。
更改它并尝试再次编译并告诉我们。
答案 1 :(得分:1)
可能你的字符串是const。更改构造函数
DateTime(string const& sf) {
// or even
DateTime(string sf) {
编辑它或者是不同的string
类型。
我认为我的分析在统计上更有意义。