12345678910111213141516171819202122232425262728293031323334353637383940 |
- // tempparm.cpp – templates as parameters
- #include <iostream>
- #include "stacktp.h"
- template <template <typename T> class Thing>
- class Crab
- {
- private:
- Thing<int> s1;
- Thing<double> s2;
- public:
- Crab() {};
- // assumes the thing class has push() and pop() members
- bool push(int a, double x) { return s1.push(a) && s2.push(x); }
- bool pop(int & a, double & x){ return s1.pop(a) && s2.pop(x); }
- };
-
- int main()
- {
- using std::cout;
- using std::cin;
- using std::endl;
- Crab<Stack> nebula;
- // Stack must match template <typename T> class thing
- int ni;
- double nb;
- cout << "Enter int double pairs, such as 4 3.5 (0 0 to end):\n";
- while (cin>> ni >> nb && ni > 0 && nb > 0)
- {
- if (!nebula.push(ni, nb))
- break;
- }
-
- while (nebula.pop(ni, nb))
- cout << ni << ", " << nb << endl;
- cout << "Done.\n";
- // cin.get();
- // cin.get();
- return 0;
- }
|