186 / 61 / 4
Регистрация: 29.04.2011
Сообщений: 641
|
|||||||||||
1 | |||||||||||
перегрузка операторов25.12.2011, 15:04. Показов 1272. Ответов 12
Метки нет (Все метки)
попробую объяснить на примере
допустим есть класс
0
|
25.12.2011, 15:04 | |
Ответы с готовыми решениями:
12
Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this Перегрузка операторов Перегрузка операторов Перегрузка операторов |
4768 / 2578 / 892
Регистрация: 29.11.2010
Сообщений: 5,575
|
||||||
25.12.2011, 15:24 | 2 | |||||
Тут нужен оператор приведения к типу. Я написал заодно и оператор "=" но он нужен в "обратном" случае.
1
|
186 / 61 / 4
Регистрация: 29.04.2011
Сообщений: 641
|
|
25.12.2011, 15:39 [ТС] | 3 |
если честно не понял код по этому куча вопросов
что делает текст который после двоеточия (не как не могу сформулировать этот вопрос гуглу) почему перегружаем оператор () и он возврашает строку, хотя при использование пишем равно что мне было понятно не могли бы вы закоментить весь код класса
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
||||||
25.12.2011, 15:44 | 5 | |||||
для понимания ':' ищите в гугле "список инициализации мемберов класса".
оператор string () - это оператор неявного преобразования объекта класса mуclass в строку
1
|
186 / 61 / 4
Регистрация: 29.04.2011
Сообщений: 641
|
|||||||||||
25.12.2011, 15:56 [ТС] | 6 | ||||||||||
большое спасибо
Добавлено через 3 минуты то есть если заменить
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
25.12.2011, 16:01 | 7 |
код останется корректным, но чуть менее эффективным. для кого-то это страшно, для кого-то нет. но лучше сразу привыкать делать по нормальному, т.е. инициализировать в списке инициализации, тем более что иногда нужна именно инициализация в списке инициализации (например для констант или ссылок или для объектов без дефолтного конструктора).
1
|
186 / 61 / 4
Регистрация: 29.04.2011
Сообщений: 641
|
|
26.12.2011, 19:42 [ТС] | 8 |
а если у меня несколько вариантов функции конструктора, то надо в каждой перегрузке создавать список инициализации
0
|
4768 / 2578 / 892
Регистрация: 29.11.2010
Сообщений: 5,575
|
|
27.12.2011, 01:40 | 9 |
До использования нового стандарта С++11, да, все конструкторы должны инициализировать все члены класса отдельно.
1
|
186 / 61 / 4
Регистрация: 29.04.2011
Сообщений: 641
|
|
27.12.2011, 08:23 [ТС] | 10 |
а сейчас
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
27.12.2011, 08:25 | 11 |
ЛеЖиК), А сейчас есть delegating constructors.
Но появились они в gcc только в 4.7 релиза которого еще не было.
0
|
186 / 61 / 4
Регистрация: 29.04.2011
Сообщений: 641
|
|
27.12.2011, 08:46 [ТС] | 12 |
так
вообщем мне в каждой перегрузке писать?
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
27.12.2011, 08:53 | 13 |
ЛеЖиК), Да.
1
|
27.12.2011, 08:53 | |
27.12.2011, 08:53 | |
Помогаю со студенческими работами здесь
13
Перегрузка операторов Перегрузка операторов Перегрузка операторов 2 [C++] Перегрузка операторов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |