Pointers to Class Members : object pointer « Class « C++ Tutorial






#include <iostream>
using namespace std;
   
class MyClass {
public:
  MyClass(int i) { val=i; }
  int val;
  int double_val() { return val+val; }
};
   
int main()
{
  int MyClass::*data; // data member pointer
  int (MyClass::*func)(); // function member pointer
  MyClass ob1(1), ob2(2); // create objects
   
  data = &MyClass::val; // get offset of val
  func = &MyClass::double_val; // get offset of double_val()
   
  cout << "Here are values: ";
  cout << ob1.*data << " " << ob2.*data << "\n";
   
  cout << "Here they are doubled: ";
  cout << (ob1.*func)() << " ";
  cout << (ob2.*func)() << "\n";
   
  return 0;
}








9.34.object pointer
9.34.1.Use class pointer and class array together
9.34.2.Use & to get object address
9.34.3.Incrementing and decrementing an object pointer
9.34.4.Pointers as data members
9.34.5.Pointers to Class Members
9.34.6.To use a pointer to the object, you need to use the ->* operator
9.34.7.Use new to allocate memory for a class pointer
9.34.8.Passing References to Objects
9.34.9.normal functions accessed from pointer
9.34.10.Sort person objects using array of pointers