Using Pointers to Class Members - C++ Class

C++ examples for Class:object

Description

Using Pointers to Class Members

Demo Code

#include <iostream>
#include <string>

class MyClass {/*from  ww w .  j a  va 2s  . com*/
public:
  MyClass() : ival_(0), sval_("foo") {}
  ~MyClass() {}

  void incr() { ++ival_; }
  void decr() { ival_--; }


  std::string sval_;
  int ival_;
};

int main() {
  MyClass obj;

  int         MyClass::* mpi = &MyClass::ival_;  // Data member
  std::string MyClass::* mps = &MyClass::sval_;  // pointers

  void (MyClass::*mpf)();
  void(*pf)();

  int* pi = &obj.ival_;

  mpf = &MyClass::incr;

  std::cout << "mpi = " << mpi << '\n';
  std::cout << "mps = " << mps << '\n';
  std::cout << "pi =  " << pi << '\n';
  std::cout << "*pi = " << *pi << '\n';

  obj.*mpi = 5;
  obj.*mps = "bar";

  (obj.*mpf)(); // now obj.ival_ is 6

  std::cout << "obj.ival_ = " << obj.ival_ << '\n';
  std::cout << "obj.sval_ = " << obj.sval_ << '\n';
}

Result


Related Tutorials