Advertisement
Guest User

Untitled

a guest
Oct 7th, 2015
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. double funcA( Arraysim& buf ){ // для сырого массива другая функция
  2. double avg=0;
  3. for(int i; i<buf.length(); i++)
  4. avg+=buf[i];
  5. return avg/buf.length();
  6. }
  7.  
  8. #include <iostream>
  9.  
  10. template <class T>
  11. struct ISubscript
  12. {
  13. virtual T & operator []( size_t ) = 0;
  14. virtual const T & operator []( size_t ) const = 0;
  15. };
  16.  
  17. class Arraysim : public ISubscript<double>
  18. {
  19. public:
  20. double & operator []( size_t n ) override
  21. {
  22. return a[n];
  23. }
  24.  
  25. const double & operator []( size_t n ) const override
  26. {
  27. return a[n];
  28. }
  29.  
  30. size_t length() const { return N; }
  31.  
  32. private:
  33. enum { N = 10 };
  34. double a[N];
  35. };
  36.  
  37. double funcA( const Arraysim &buf )
  38. {
  39. double avg = 0;
  40.  
  41. for ( size_t i = 0; i < buf.length(); i++ ) avg += buf[i];
  42.  
  43. return avg / buf.length();
  44. }
  45.  
  46. int main()
  47. {
  48. Arraysim a;
  49.  
  50. for ( size_t i = 0; i < a.length(); i++ ) a[i] = i + i / 10.0;
  51.  
  52. std::cout << funcA( a ) << std::endl;
  53. }
  54.  
  55. 4.95
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement