问题01:如何使用地址来引用数据成员或成员函数
使用类名和范围操作符加上星号来正确地引用类成员。
- #include <iostream>
- #include <string>
- using namespace std;
- class MyClass {
- public:
- MyClass() : ival_(0), sval_("foo") {}
- ~MyClass() {}
- void incr() {++ival_;}
- void decr() {--ival_;}
- string sval_;
- int ival_;
- };
- int main()
- {
- MyClass obj;
- int MyClass::* mpi = &MyClass::ival_; // Data member pointers
- string MyClass::* mps = &MyClass::sval_;
- void (MyClass::*mpf)(); // A pointer to a memeber function
- mpf = &MyClass::incr;
- cout << obj.*mpi << endl;
- cout << obj.*mps << endl;
- (obj.*mpf)();
- cout << obj.ival_ << endl;
- return 0;
- }