本文主要是介绍错误信息:cannot call member function ‘ ‘ without object 处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 一、源码展示
- 总结
提示:以下是本篇文章正文内容,下面案例可供参考
一、源码展示
std::vectorstd::string split()函数报错:cannot call member function ’ ’ without object,如果直接引用没有对象,因为这里面的其他函数都是static,是写在头文件中的,没有实际的object,所以必须也要定义成static。
正是因为都放在头文件中实现,所以要定义成static。
static std::string extract(std::string &values, int index, char delim) {if (values.length() == 0) return std::string("");std::vector<std::string> x = split(values, delim);if (index > x.size()) {throw "Error:Out-of-range index";}return x.at(index);}static void _split(const std::string &s, char delim,std::vector<std::string> &elems) {std::stringstream ss(s);std::string item;while (std::getline(ss, item, delim)) {elems.push_back(item);}}std::vector<std::string> split(const std::string &s, char delim) {std::vector<std::string> elems;_split(s, delim, elems);return elems;}
总结
提示:这里对文章进行总结:
如果是在头文件中实现的函数需要定义成static,因为没有实际对象,所以作为全局函数使用,如果少加static,就会出现报错cannot call member function ’ ’ without object ,相应处理为+static或者定义一个对象如果是在源文件中。
这篇关于错误信息:cannot call member function ‘ ‘ without object 处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!