понять сложное определение функции

У меня есть сложное определение функции, написанное на С++. Я впервые сталкиваюсь с таким сложным определением функции, и мне трудно понять его смысл.

Вот

t_group& t_group::operator=(const t_group &a)
{

}

конкретно мне нужно знать что

оператор=(const t_group &a)

иметь в виду ?


person crowso    schedule 03.06.2012    source источник


Ответы (1)


Вот разбивка:

t_group&

Функция возвращает ссылку на t_group.

t_group::

Функция находится в пространстве имен t_group. Поскольку t_group — это имя struct, union или class, оно является членом t_group.

operator=

Эта функция представляет собой перегрузку оператора =. Поскольку это метод, объект находится слева от оператора =.

(const t_group &a)

Это параметр функции: это правая часть оператора =. Это говорит о том, что правая часть является ссылкой const на t_group, что означает, что функция не будет изменять t_group.

В совокупности это операция копирования для класса t_group. Он вызывается таким кодом:

t_group a, b;
b = a;

Последняя строка эквивалентна b.operator=(a);.

P.S. функции оператора присваивания обычно заканчиваются на return *this;. Это сделано для того, чтобы вы могли связывать присваивания (например, a = b = c) так же, как обычный оператор =.

person Mike DeSimone    schedule 03.06.2012