我在类中有这样的标题,我想在同一个类的构造函数中使用该函数作为静态函数调用:
class JsonReader {
public:
/// functions implementation including constructor and what not
static string encrypt(const string& str_in, const string& key, const string& iv) {
string str_out;
// implementation of the function
return str_out;
}
}
现在在构造函数中,它在这行代码上失败了:
string tmp = encrypt(text, key, NULL);
text& key是有效的字符串。我还验证了如果我直接将函数体中的代码复制到构造函数中,函数的实现是正确的。所以唯一的问题应该是在构造函数的头部或函数调用的接口处。
任何帮助将不胜感激!
答案 0 :(得分:1)
这是因为您将NULL
传递给了const std::string &
的参数。传递NULL
将导致std::string
临时NULL
的构建,这意味着您最终调用的构造函数需要非null {{1 }}。我猜你实际上并没有在你的实现中使用const char *
,这就是为什么当你手动内联实现时,问题就消失了。