Введение в язык Си++


Еще об операциях


Другое направление развития - снабдить вектора операциями:

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



Содержание раздела