Имеет исходную строку в коде
Folder operator +( Folder )
{
//тело метода (функции)
}
(на тело на самом деле наплевать)
Интересует способ записи заголовка функции
Имеем 4 предложенных способа, которые можно подставить вместо исходного варианта:
1) Folder operator +( Folder & f)
2) Folder operator +( const Folder & f)
3) const Folder operator +( const Folder & f)
4) const Folder operator +( const Folder & f) const
Если первые 3 я примерно понимаю что значит, то последний я не имею представления, прошу объяснить мне.
Заранее спасибо за ответы!
Folder operator +( Folder & f) // Передана ссылка
Folder operator +( const Folder & f) // Передана константная ссылка
const Folder operator +( const Folder & f) // Передана константная ссылка,
// возвращается константный объект
const Folder operator +( const Folder & f) const // Передана константная ссылка,
// возвращается константный объект,
// сам оператор константный
// - т.е. не меняет текущий объект
Так понятно или подробнее?
Вот пример кода:
class Test
{
public:
Test operator + (Test&) { cout << "1\n"; return Test(); }
Test operator + (const Test&) { cout << "2\n"; return Test(); }
Test operator + (const Test&) const { cout << "3\n"; return Test(); }
};
const Test f() { return Test(); }
int main(int argc, const char * argv[])
{
Test a, b;
a + b;
a + f();
f() + f();
}
который выводит:
1
2
3
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Программа имеет считывать данные с консоли, используя класс QTextStream, и записывать их в линейный контейнер QStack до введения терминального 125±0
Написал небольшую программу на visual studio 15 c++ с использованием GLEW GLFW GLM OpenCVПо требованиям человека, которому я это делаю, я должен отдать проект...