fun_ptr.cpp 818 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // fun_ptr.cpp -- pointers to functions
  2. #include <iostream>
  3. double betsy(int);
  4. double pam(int);
  5. // second argument is pointer to a type double function that
  6. // takes a type int argument
  7. void estimate(int lines, double (*pf)(int));
  8. int main()
  9. {
  10. using namespace std;
  11. int code;
  12. cout << "How many lines of code do you need? ";
  13. cin >> code;
  14. cout << "Here's Betsy's estimate:\n";
  15. estimate(code, betsy);
  16. cout << "Here's Pam's estimate:\n";
  17. estimate(code, pam);
  18. // cin.get();
  19. // cin.get();
  20. return 0;
  21. }
  22. double betsy(int lns)
  23. {
  24. return 0.05 * lns;
  25. }
  26. double pam(int lns)
  27. {
  28. return 0.03 * lns + 0.0004 * lns * lns;
  29. }
  30. void estimate(int lines, double (*pf)(int))
  31. {
  32. using namespace std;
  33. cout << lines << " lines will take ";
  34. cout << (*pf)(lines) << " hour(s)\n";
  35. }