0 / 0 / 2
Регистрация: 03.01.2013
Сообщений: 113
|
||||||
1 | ||||||
Перегруженный оператор присваивания06.05.2013, 21:01. Показов 2458. Ответов 6
Метки нет (Все метки)
Добрый вечер! Встретил пример в книге, где есть перегруженный оператор присваивания. В итоге код который написан в книге не запускается. Во время инициализации объекта с помощью знака равно выбивает ошибку. Когда пробую инициализировать объект круглыми скобками то программа запускается. Можете подсказать в чем дело?
String s3 = "Myha po poly shla, myha denejky nashla"; - Ошибка: error: no matching function for call to 'String::String(String)'| String s3("Myha po poly shla, myha denejky nashla"); - запускается программа.
0
|
06.05.2013, 21:01 | |
Ответы с готовыми решениями:
6
Перегруженный оператор присваивания Не работает перегруженный оператор присваивания Не выполняется перегруженный оператор присваивания Очередь, конструктор копирования и перегруженный оператор присваивания |
~ Эврика! ~
1257 / 1006 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
06.05.2013, 21:15 | 2 |
@@ -36,1 +36,1 @@
-String(String& S) +String(const String& S) Определяйте конструктор копирования правильно.
1
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||||
06.05.2013, 21:34 | 3 | |||||
Но ошибка-то далеко не в этом. Оператор присваивания более интересный
Подправил Ваш код. Кажется работает:
1
|
0 / 0 / 2
Регистрация: 03.01.2013
Сообщений: 113
|
|
06.05.2013, 21:36 [ТС] | 4 |
OhMyGodSoLong, пример из книги. Но суть я уловил. Спасибо.
Добавлено через 19 секунд Если что тема актуальна. Ошибка присутствует : )
0
|
0 / 0 / 2
Регистрация: 03.01.2013
Сообщений: 113
|
|
06.05.2013, 21:50 [ТС] | 6 |
Ваше сообщение не увидел.
Функцию strcpy_s компилятор не видит. Посмотрел в интернете вроде как в заголовочном файле cstring должна быть. Можно в двух словах что не так было? Попробую еще пройтись по коду, когда дойду до оператора this.
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||||
06.05.2013, 22:03 | 7 | |||||
Это из разряда "безопасных" от майкрософта. Замените на ту, которая была у Вас:
Ошибок было как минимум две: 1. Сигнатура копирующего конструктора и оператора присваивания. 2. Оператор присваивания должен возвращать ссылку на текущий объект.
1
|
06.05.2013, 22:03 | |
06.05.2013, 22:03 | |
Помогаю со студенческими работами здесь
7
Нужно ли реализовать также отдельно конструктор копирования, если имеется перегруженный оператор присваивания? Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор * Перегруженный оператор Перегруженный оператор + Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |