#include<iostream>
template < class T>
class Mas
{
//хотя я почему-то помню, что объявленные тут приватны по умолчанию
Mas( ) ;
private :
T * item;
int size;
public :
Mas( int array_size,T default_value) { size= array_size; item = new T [ size] ; for ( int i= 0 ; i< size; i++ ) item[ i] = default_value; }
/*не помню в данный момент съест в таком виде деструктор или после нужно описать с явным заданием что тип от шаблона, но это не важно, когда буду у ПК на котором стоит MS VS 2010 проверю */
~Mas( ) { size= 0 ; delete [ ] item; } ;
//Max и должна быть friend методом, но класс 1 и более не предвидится
template < class T2> friend T2 Max( Mas< T2> const & m) ;
} ;
//вариант согласно вашего алгоритма
template < class T2>
T2 Max( Mas< T2> const & m) { T2 max; for ( int i= 0 ; i< m.size ; i++ ) if ( max< m.item [ i] ) max= m.item [ i] ; return max; }
int main( ) {
Mas< int > mas( 100 , 10 ) ;
std:: cout << Max( mas) ;
return 0 ;
}
I2luY2x1ZGU8aW9zdHJlYW0+Cgp0ZW1wbGF0ZSA8Y2xhc3MgVD4KY2xhc3MgTWFzCnsKICAgIC8v0YXQvtGC0Y8g0Y8g0L/QvtGH0LXQvNGDLdGC0L4g0L/QvtC80L3Rjiwg0YfRgtC+INC+0LHRitGP0LLQu9C10L3QvdGL0LUg0YLRg9GCINC/0YDQuNCy0LDRgtC90Ysg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4KICAgIE1hcygpOwogICAgCiAgICBwcml2YXRlOiAKICAgIFQgKiBpdGVtOwogICAgaW50IHNpemU7CiAgICBwdWJsaWM6CiAgICBNYXMoaW50IGFycmF5X3NpemUsVCBkZWZhdWx0X3ZhbHVlKXtzaXplPWFycmF5X3NpemU7aXRlbSA9IG5ldyBUIFtzaXplXTsgZm9yIChpbnQgaT0wO2k8c2l6ZTtpKyspIGl0ZW1baV09ZGVmYXVsdF92YWx1ZTt9CiAgICAvKtC90LUg0L/QvtC80L3RjiDQsiDQtNCw0L3QvdGL0Lkg0LzQvtC80LXQvdGCINGB0YrQtdGB0YIg0LIg0YLQsNC60L7QvCDQstC40LTQtSDQtNC10YHRgtGA0YPQutGC0L7RgCDQuNC70Lgg0L/QvtGB0LvQtSDQvdGD0LbQvdC+INC+0L/QuNGB0LDRgtGMINGBINGP0LLQvdGL0Lwg0LfQsNC00LDQvdC40LXQvCDRh9GC0L4g0YLQuNC/INC+0YIg0YjQsNCx0LvQvtC90LAsINC90L4g0Y3RgtC+INC90LUg0LLQsNC20L3Qviwg0LrQvtCz0LTQsCDQsdGD0LTRgyDRgyDQn9CaINC90LAg0LrQvtGC0L7RgNC+0Lwg0YHRgtC+0LjRgiBNUyBWUyAyMDEwINC/0YDQvtCy0LXRgNGOICovCiAgICB+TWFzKCl7c2l6ZT0wOyBkZWxldGUgW10gaXRlbTt9OwogICAgLy9NYXgg0Lgg0LTQvtC70LbQvdCwINCx0YvRgtGMIGZyaWVuZCDQvNC10YLQvtC00L7QvCwg0L3QviDQutC70LDRgdGBIDEg0Lgg0LHQvtC70LXQtSDQvdC1INC/0YDQtdC00LLQuNC00LjRgtGB0Y8KICAgIAogICAgCiAgICB0ZW1wbGF0ZTxjbGFzcyBUMj4gZnJpZW5kIFQyIE1heChNYXM8VDI+IGNvbnN0JiBtKTsKfTsKCi8v0LLQsNGA0LjQsNC90YIg0YHQvtCz0LvQsNGB0L3QviDQstCw0YjQtdCz0L4g0LDQu9Cz0L7RgNC40YLQvNCwCnRlbXBsYXRlIDxjbGFzcyBUMj4KVDIgTWF4KE1hczxUMj4gY29uc3QmIG0pIHtUMiBtYXg7Zm9yIChpbnQgaT0wO2k8bS5zaXplO2krKykgaWYgKG1heDxtLml0ZW1baV0pIG1heD1tLml0ZW1baV07cmV0dXJuIG1heDt9CgppbnQgbWFpbigpIHsKICAgIE1hczxpbnQ+IG1hcygxMDAsIDEwKTsKICAgIAogICAgc3RkOjpjb3V0IDw8IE1heChtYXMpOwogICAgCiAgICByZXR1cm4gMDsKfQ==