friend class t l ; // все функции-члены класса tl имеют доступ ко всем полям класса t3 >; Переопределение (перегрузка) операций В языках программирования определена семантика операций, выполняемых над базовыми (предопределенными) типами данных, например, если х, у и z - переменные типа float, то запись х = у + z; предполагает интуитивно очевидные действия, сложение х и у и присваивание переменной z полученной суммы.. В C++ это достигается переопределением имеющихся в языке операций для других типов данных. Переопределенная операиия объявляется так: типрезультата operator знак операции (формальные параметры) { описаниеалгоритмавыполненияоперации } Пример: class TPoint { int х,у; public: TPoint& operator+=( const TPoint& adder); TPoint& operator-=( const TPoint& subber); friend TPoint operator - ( const TPoint& one, const TPoint& two); friend TPoint operator + ( const TPoint& one, const TPoint& two); friend int operator = ( const TPoint& one, const TPoint& two); friend int operator != ( const TPoint& one, const TPoint& two); }; Полное определение этих операций для объектов класса TPoint имеет вид: inline TPoint& TPoint: operator += ( const TPoint& adder) { x += adder.x; у += adder.y; return +this;} inline TPoint& TPoint:operator -= ( const TPoint& subber ) { x -= subber.x; y-=subber.y; return *this;} Остальные операции определяются аналогичным образом.
RkJQdWJsaXNoZXIy MTExODQxMg==