Personal tools
You are here: Home Projects C++ Cfront releases Release 3.0.3 source demo lang pClassMem.C
Document Actions

pClassMem.C

by Michael L Powell last modified 2007-01-26 03:20

Click here to get the file

Size 1.3 kB - File type text/plain

File contents

/*ident	"@(#)cls4:demo/lang/pClassMem.C	1.1" */
/*#########################################################################
#                       Copyright (c) 1989 AT&T
#                         All Rights Reserved   
#
#                THIS IS PROPRIETARY SOURCE CODE OF AT&T
#       
#                     This code has been published in
#                      C++ Primer by Stanley Lippman
#                    Addison_Wesley Publishing Company
#
#########################################################################*/
#include <iostream.h>
#include "Screen.h"

main() 
{ 
  cout << "Demo: Pointers to class member functions\n\n";
  Screen x(3,3);
  int sz = x.getHeight() * x.getWidth();

      // see Screen.h for details
      // invokes Screen::move(CursorMovements)
      x.move( HOME ); 
      for ( int i = 0; i <= sz; ++i ) 
            x.stats().move( FORWARD );

      cout << "\n\n";

      x.move( BOTTOM );
      for ( i = 0; i <= sz; ++i ) 
            x.stats().move( BACK );

      cout << "\n\n";

      typedef Screen& (Screen::*Action)();
      Action pmf = &Screen::home;
      Screen *ps = &x;

      (x.*pmf)(); 
      for ( i = 0; i <= sz; ++i ) {
            pmf = &Screen::stats;
            (x.*pmf)();
	    pmf = &Screen::forward;
	    (ps->*pmf)();
      }	

      return 0;
}
« May 2024 »
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: