summaryrefslogtreecommitdiffstats
path: root/Bachelor/Prog1/examples/ch05/Fig05_26.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Bachelor/Prog1/examples/ch05/Fig05_26.cpp')
-rw-r--r--Bachelor/Prog1/examples/ch05/Fig05_26.cpp76
1 files changed, 76 insertions, 0 deletions
diff --git a/Bachelor/Prog1/examples/ch05/Fig05_26.cpp b/Bachelor/Prog1/examples/ch05/Fig05_26.cpp
new file mode 100644
index 0000000..916dbb9
--- /dev/null
+++ b/Bachelor/Prog1/examples/ch05/Fig05_26.cpp
@@ -0,0 +1,76 @@
+// Fig. 5.26: fig05_26.cpp
+// Demonstrating an array of pointers to functions.
+#include <iostream>
+
+using std::cout;
+using std::cin;
+using std::endl;
+
+// function prototypes
+void function1( int );
+void function2( int );
+void function3( int );
+
+int main()
+{
+ // initialize array of 3 pointers to functions that each
+ // take an int argument and return void
+ void (*f[ 3 ])( int ) = { function1, function2, function3 };
+
+ int choice;
+
+ cout << "Enter a number between 0 and 2, 3 to end: ";
+ cin >> choice;
+
+ // process user's choice
+ while ( choice >= 0 && choice < 3 ) {
+
+ // invoke function at location choice in array f
+ // and pass choice as an argument
+ (*f[ choice ])( choice );
+
+ cout << "Enter a number between 0 and 2, 3 to end: ";
+ cin >> choice;
+ }
+
+ cout << "Program execution completed." << endl;
+
+ return 0; // indicates successful termination
+
+} // end main
+
+void function1( int a )
+{
+ cout << "You entered " << a
+ << " so function1 was called\n\n";
+
+} // end function1
+
+void function2( int b )
+{
+ cout << "You entered " << b
+ << " so function2 was called\n\n";
+
+} // end function2
+
+void function3( int c )
+{
+ cout << "You entered " << c
+ << " so function3 was called\n\n";
+
+} // end function3
+
+/**************************************************************************
+ * (C) Copyright 1992-2003 by Deitel & Associates, Inc. and Prentice *
+ * Hall. All Rights Reserved. *
+ * *
+ * DISCLAIMER: The authors and publisher of this book have used their *
+ * best efforts in preparing the book. These efforts include the *
+ * development, research, and testing of the theories and programs *
+ * to determine their effectiveness. The authors and publisher make *
+ * no warranty of any kind, expressed or implied, with regard to these *
+ * programs or to the documentation contained in these books. The authors *
+ * and publisher shall not be liable in any event for incidental or *
+ * consequential damages in connection with, or arising out of, the *
+ * furnishing, performance, or use of these programs. *
+ *************************************************************************/