19 / 19 / 2
Регистрация: 29.11.2009
Сообщений: 224
|
||||||
1 | ||||||
Как передалеть operator= класса?20.01.2010, 14:16. Показов 6752. Ответов 78
Метки нет (Все метки)
Вот готовая программа, но там одна проблема - после использования оператора=, при изменении значений в одном объекте класса, они изменяются и в другом. Другими словами, как сделать так, чтобы вывод программы был:
Frisky's age: 5 whisker's age: 6 а не Frisky's age: 5 whisker's age: 0 Вот код программы:
1
|
20.01.2010, 14:16 | |
Ответы с готовыми решениями:
78
operator+ как член класса Как перенести operator из базового класса в производный? Класс: Почему этот operator+ не хочет работать как функция внутри класса? operator[][] для класса |
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|
20.01.2010, 16:51 | 41 |
0
|
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
|
|
20.01.2010, 16:55 | 42 |
Genius Ignat, мне не интересно с тобой общаться. и я тебе ничего не должен.
0
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|
20.01.2010, 16:56 | 43 |
Ты прав.
Но я тоже. Сейчас откомпилировал две программы. Одну на VC++ 6.0: При запуске опять ошибка Другую на Visual Studio 2008: При запуске всё норм.
0
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|
20.01.2010, 16:57 | 44 |
Жесть все серёзные.
2 Genius Ignat Узнать можно по нажатию F11 в VS 2008 по крайне мере) но только в режиме дебага) это будет - dbgdel.cpp
0
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|
20.01.2010, 16:58 | 45 |
Буду знать: что на программы на старом компиляторе ни чего хорошего.
Добавлено через 1 минуту insideone: узнавать пока я ни чего не собирался.
0
|
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
|
||||||||||||||||
20.01.2010, 17:05 | 46 | |||||||||||||||
OVERPOWER8, я тебе уже говорил про опастность использования указателей для храниения таких примитивных данных как возраст. Ты не хотел слушать и вот результат - в простейшем классе серьезная и очень неприятная ошибка. А если класс в 10 раз больше и классов не один десяток?
Никакое удобство не оправдывает опастности связанные с использованием указателей, там где они не нужны - избавься от такой практики. Как уже было написано - не хватало конструктора копирования. Поэтому у тебя указатели itsAge и itsWeight после выполнения строки
Вот рабочий вариант твоего кода (по крайне мере, codepad.org выдает ожидаемый результат).
0
|
19 / 19 / 2
Регистрация: 29.11.2009
Сообщений: 224
|
|
20.01.2010, 18:44 [ТС] | 47 |
>> CyBOSSeR
А ты почитай Страуструпа про NULL - он рекомендует обратное - вместо NULL использовать 0! >> Genius Ignat >> zim22 Вы пользуетесь компиляторами с поблажками, и толком не знаете, как работают указатели, т. к. ваши компиляторы на некоторые оплошности закрывают глаза...
0
|
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
|
|
20.01.2010, 18:51 | 48 |
0
|
19 / 19 / 2
Регистрация: 29.11.2009
Сообщений: 224
|
|
20.01.2010, 19:14 [ТС] | 49 |
0
|
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
|
|
20.01.2010, 19:16 | 50 |
у меня уже реакция вырабатывается - если не отвечают, а рекомендуют почитать умную книжку, то это значит одно из двух: или я не в теме, или советчик. в данном случае - советчик
0
|
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
|
|
20.01.2010, 19:27 | 51 |
Ни разу про такое не слышал. В какой именно книге? В "Язык прграммирования C++" даже упоминания про NULL нет. В посте на который я тебе указывал, Evg приводил примеры непереносимого кода, как раз таки из-за использования 0 вместо NULL.
Может быть ты все таки расскажешь, почему для хранения таких данных как возраст ты используешь указатели, при условии, что: 1. Это не безопасно и ты на этом примере должен был убедится в этом. 2. На это уходит больше памяти (сами данные + указатель на них). Ты говорил, что так удобнее. В чем выражается это удобство, если приходится писать уйму кода только для того, чтобы обеспечить безопасность при работе с указателями? Хотелось бы услышать как все таки "работают" указатели? Добавлено через 1 минуту А если своими словами?
0
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|
20.01.2010, 19:44 | 52 |
Да действительно зачем здесь указатели, какая от них выгода.
0
|
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
|
|
20.01.2010, 20:22 | 53 |
0
|
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
|
|
20.01.2010, 20:31 | 54 |
Скоро-то скоро, но сколько времени еще пройдет до того момента как компиляторы начнут его поддерживать.
0
|
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
|
|
20.01.2010, 20:35 | 55 |
1
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|
20.01.2010, 20:41 | 56 |
Bjarne Stroustrup. The C++ programming language. Special edition. 3rd. ed.
0
|
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
|
|
20.01.2010, 20:42 | 57 |
0
|
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
|
|
20.01.2010, 20:45 | 58 |
0
|
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
|
|
21.01.2010, 00:43 | 59 |
OVERPOWER8, прочитай это ВНИМАТЕЛЬНО прежде чем говорить что Страуструп рекомендует 0 вместо NULL.
Добавлено через 3 часа 55 минут OVERPOWER8, так ты ответишь на озвученные вопросы?
0
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|
21.01.2010, 01:25 | 60 |
В 36 посту я даю ссылку на Википедию https://www.cyberforum.ru/post491800.html
Там внизу написано:
0
|
21.01.2010, 01:25 | |
21.01.2010, 01:25 | |
Помогаю со студенческими работами здесь
60
Operator< для класса Перегрузка operator* у класса Complex Не работает operator<< шаблонного класса Vector Перегрузка operator>> для производного класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |