C++使用静态成员函数
来源:互联网 发布:sql server 1326错误 编辑:程序博客网 时间:2024/05/29 09:17
描述一下问题:
在一个类中写了一个比较函数:
我们知道,对于sort和equal这样的函数,除了指定迭代器之外,还可以指定一个函数指针(比较函数),来定义自己的比较方法,比如说,我最近写了在做leetcode的题目的时候,要定义忽略大小写的string串比较,于是我这么写:
class Solution {private:bool cmp(char a, char b){return tolower(a) == tolower(b);}bool compareIgnoreCase(string const& s1, string const&s2){if (s1.size() == s2.size()){return equal(s1.begin(), s1.end(), s2.begin(),cmp);}elsereturn false;}};
看似没有问题。。。后来出错了,原因是因为在类的实例没有初始化时,其成员函数没有地址,因此如果这样写的话,必须把比较函数声明为静态,或者写在类外面。
如果我说得不够清楚,可以参考:
http://stackoverflow.com/questions/4288439/problem-using-a-compare-function-inside-of-a-class-for-sort
当然这种问题还可以用lambda表达式解决,可以参考:
http://bbs.csdn.net/topics/391030750#
1 0
- c++:静态成员变量和静态成员函数使用问题
- [C++] 静态成员函数
- C++static静态成员函数
- 【C++】静态成员函数小结
- C++:静态类成员函数
- 【C++】类的静态成员函数和静态成员变量的使用
- 静态成员函数的使用
- C++使用静态成员函数
- 使用静态构造函数初始化静态成员
- C/C++静态成员变量和静态成员函数
- static(c++)静态数据成员和静态成员函数
- c++:静态函数成员与静态数据成员
- 3-6 静态数据成员与静态成员函数(c++)
- C++_静态数据成员和静态成员函数
- 《Effective C#》Item 13:使用静态构造函数初始化静态成员
- 《Effective C#》Item 13:使用静态构造函数初始化静态成员
- 《Effective C#》Item 13:使用静态构造函数初始化静态成员
- 《Effective C#》Item 13:使用静态构造函数初始化静态成员
- (3)参与ardupilot项目编程——git实践
- mysql使用索引
- 3. QQ 登陆
- Java类加载器深入理解
- scikit-learn学习之SVM算法
- C++使用静态成员函数
- CentOS安装openoffice的方法
- 基于GEC210的u-boot编译过程问题收集
- Java异常的深入研究与分析
- PHP菜鸟手记——如何解决无法装载动态链接库的问题
- 使用HttpWebRequest post数据时要注意UrlEncode[http自动转义]
- 31.TextView分段改变字体颜色和分段点击
- Uva 11134 Fabled Rooks
- (有趣)把文字隐藏到图片中