类模板

  1. #include <iostream>
  2. using namespace std;
  3. template<typename T>
  4. class Array
  5. {
  6. public:
  7. Array(int s);
  8. virtual ~Array();
  9. virtual const T& Entry(int index)const;
  10. virtual void Enter(int index, const T& value);
  11. protected:
  12. int size;
  13. T* element;
  14. };
  15. template<typename T>
  16. Array<T>::Array(int s)
  17. {
  18. if (s>1)
  19. {
  20. size = s;
  21. }
  22. else
  23. {
  24. size = 1;
  25. }
  26. element = new T[size];
  27. }
  28. template<typename T>
  29. Array<T>::~Array()
  30. {
  31. delete[] element;
  32. }
  33. template<typename T>
  34. const T& Array<T>::Entry(int index) const
  35. {
  36. return element[index];
  37. }
  38. template<typename T>
  39. void Array<T>::Enter(int index, const T& value)
  40. {
  41. element[index] = value;
  42. }
  43. int main()
  44. {
  45. Array<int> IntAry(5);
  46. for (int i=0; i<5; i++)
  47. {
  48. IntAry.Enter(i, i);
  49. }
  50. cout << "Integer Array: \n";
  51. for (int i=0; i<5; i++ )
  52. {
  53. cout << IntAry.Entry(i) << '\t';
  54. }
  55. cout << endl;
  56. Array<double> DouAry(5);
  57. for (int i=0; i<5; i++)
  58. {
  59. DouAry.Enter(i, (i + 1)*0.35);
  60. }
  61. cout << "Double Array: \n";
  62. for (int i=0; i<5; i++)
  63. {
  64. cout << DouAry.Entry(i) << '\t';
  65. }
  66. cout << endl;
  67. return 0;
  68. }




posted @ 2016-06-14 07:51  -刀狂剑痴-  阅读(184)  评论(0编辑  收藏  举报