Class forward declaration : Class Basics « Class « C++






Class forward declaration

Class forward declaration

#include <iostream>
using namespace std;

class pr2;  // 

class pr1 {
  int printing;
  
public:
  pr1() { 
     printing = 0; 
  }
  void set_print(int status) { 
     printing = status; 
  }
  
  friend int inuse(pr1 object1, pr2 object2);
};

class pr2 {
  int printing;
  
public:
  pr2() { 
     printing = 0; 
  }
  void set_print(int status) { 
     printing = status; 
  }
  
  friend int inuse(pr1 object1, pr2 object2);
};

int inuse(pr1 object1, pr2 object2)
{
  if(object1.printing || object2.printing) return 1;
  else return 0;
}

int main()
{
  pr1 p1;
  pr2 p2;

  if(!inuse(p1, p2)) 
     cout << "Printer idle\n";

  cout << "Setting p1 to printing...\n";
  p1.set_print(1);
  if(inuse(p1, p2)) 
     cout << "Now, printer in use.\n";

  cout << "Turn off p1...\n";
  p1.set_print(0);
  if(!inuse(p1, p2)) 
     cout << "Printer idle\n";

  cout << "Turn on p2...\n";
  p2.set_print(1);
  if(inuse(p1, p2)) 
     cout << "Now, printer in use.\n";

  return 0;
}


           
       








Related examples in the same category

1.Simplest class definitionSimplest class definition
2.A simple class with member variable, constructor, destructorA simple class with member variable, constructor, destructor
3.Address class: class definition and implementationAddress class: class definition and implementation
4.Declare class instanceDeclare class instance
5.Constructor: different parameter typeConstructor: different parameter type
6.Declare Class instance and use themDeclare Class instance and use them
7.Assign object1 to object2Assign object1 to object2
8.Init Object arrayInit Object array