#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
class person
{
public:
person(string str):name(str) {}
int testName(){
cout<<"LINE:"<<__LINE__<<endl;
return !(name=="");
}
string getName(){
cout<<"LINE:"<<__LINE__<<endl;
return name;
}
string name;
private:
};
void out(person &one, string (person::*mem_fun)())
{
(one.*mem_fun)();
}
int main()
{
int(person::*pTestName)() = person::testName;
string(person::*pGetName)() = person::getName;
person *p_xiaohong = new person("xiaohong");
(p_xiaohong->*pTestName)();
(p_xiaohong->*pGetName)();
string person::*pPersonName = &person::name; //如果name是private的,会编译错误
cout<< p_xiaohong->*pPersonName << endl;
out(*p_xiaohong, person::getName);
out(*p_xiaohong, pGetName);
return 0;
}
本文深入探讨了C++面向对象编程中成员函数的使用,通过实例展示了如何实现成员函数来操作类的对象属性,以及成员函数之间的相互调用。详细解释了成员函数的定义、作用域和返回值,并提供了实际应用代码示例。
113

被折叠的 条评论
为什么被折叠?



