fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. /* Array.h*/
  5.  
  6. template<size_t n, typename T>
  7. class Array
  8. {
  9. static unsigned __freeId, __quantity;
  10. unsigned _id;
  11.  
  12. T* _array;
  13. public:
  14. Array(void);
  15. ~Array(void);
  16. T& operator[](const size_t);
  17. };
  18.  
  19. /* Array.cpp */
  20.  
  21. template<size_t n, typename T>
  22. Array<n, T>::Array(void)
  23. : _id(++__freeId), _array(new T[n]) {
  24. }
  25.  
  26. template<size_t n, typename T>
  27. Array<n, T>::~Array(void) {
  28. delete[] _array;
  29. }
  30.  
  31. template<size_t n, typename T>
  32. T& Array<n, T>::operator[](const size_t i) {
  33. return _array[i];
  34. }
  35.  
  36. /* Main.cpp */
  37.  
  38. template<> unsigned Array<7, int>::__freeId = 0;
  39. template<> unsigned Array<7, int>::__quantity = 0;
  40.  
  41. int main() {
  42. Array<7, int> a;
  43. return 0;
  44. }
Success #stdin #stdout 0s 4384KB
stdin
Standard input is empty
stdout
Standard output is empty