Другое направление развития - снабдить вектора операциями:
class Vec : public vector { public: Vec(int s) : (s) {} Vec(Vec&); ~Vec() {} void operator=(Vec&); void operator*=(Vec&); void operator*=(int); //... };
Обратите внимание на способ определения конструктора производного класса, Vec::Vec(), когда он передает свой параметр конструктору базового класса vector::vector() и больше не делает ничего. Это полезная парадигма. Операция присваивания перегружена, ее можно определить так:
void Vec::operator=(Vec& a) { int s = size(); if (s!=a.size()) error("плохой размер вектора для ="); for (int i = 0; i
void error(char* p) { cerr << p << "\n"; exit(1); }
void vector::set_size(int) { /*...*/ } int& vec::operator[](int i) { /*...*/ } main() { Vec a(10); Vec b(10); for (int i=0; i
8 8 8
|