C++ 成员模板

tempmemb.h

  1. #ifndef PRO1_TEMPMEMB_H
  2. #define PRO1_TEMPMEMB_H
  3. class tempmemb {
  4. };
  5. #endif //PRO1_TEMPMEMB_H

tempmemb.cpp

  1. #include "tempmemb.h"
  2. #include <iostream>
  3. using namespace std;
  4. template <typename T>
  5. class beta{
  6. private:
  7. template <typename V>
  8. class hold{
  9. private:
  10. V val;
  11. public:
  12. hold(V v = 0):val(v){}
  13. void show()const {cout << val << endl; }
  14. V Value()const { return val;}
  15. };
  16. hold<T> q;
  17. hold<int> n;
  18. public:
  19. beta(T t, int i):q(t), n(i){}
  20. template <typename U>
  21. U blab(U u, T t){ return (n.Value() + q.Value()) * u / t; }
  22. void Show()const {q.show(); n.show();}
  23. };
  24. void test(){
  25. beta<double> guy(3.5, 3);
  26. guy.Show();
  27. cout << guy.blab(10, 2.3) << endl;
  28. cout << "Done\n";
  29. }