Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- double funcA( Arraysim& buf ){ // для сырого массива другая функция
- double avg=0;
- for(int i; i<buf.length(); i++)
- avg+=buf[i];
- return avg/buf.length();
- }
- #include <iostream>
- template <class T>
- struct ISubscript
- {
- virtual T & operator []( size_t ) = 0;
- virtual const T & operator []( size_t ) const = 0;
- };
- class Arraysim : public ISubscript<double>
- {
- public:
- double & operator []( size_t n ) override
- {
- return a[n];
- }
- const double & operator []( size_t n ) const override
- {
- return a[n];
- }
- size_t length() const { return N; }
- private:
- enum { N = 10 };
- double a[N];
- };
- double funcA( const Arraysim &buf )
- {
- double avg = 0;
- for ( size_t i = 0; i < buf.length(); i++ ) avg += buf[i];
- return avg / buf.length();
- }
- int main()
- {
- Arraysim a;
- for ( size_t i = 0; i < a.length(); i++ ) a[i] = i + i / 10.0;
- std::cout << funcA( a ) << std::endl;
- }
- 4.95
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement