Форум программистов, компьютерный форум, киберфорум
Наши страницы

Null pointer assignment. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Литература по WebBrowser для C++ http://www.cyberforum.ru/cpp-beginners/thread344787.html
Подскажите учебник по использованию компонента WebBrowser для С++.Т.к мне на МСДН нечего не понятно - я еще новичек , или названия книжек где хотя бы в не которых главах описывают за WebBrowser.
C++ Общие вопросы для реальной работы Привет! Скажите пожалуйста на сколько рально самостоятельно изучить С++, что бы потом работать обычным программистом и иметь спрос работодателей на рынке труда? http://www.cyberforum.ru/cpp-beginners/thread344783.html
C++ Генерация последовательности случайных чисел
можно ли считать что при генерации последовательности случайных чисел с помощью функций srand и rand при одном и том же начальном значении всегда будет генерироваться одна и таже последовательность,...
Отправка содержимого текстового файла на почту C++
Добрый вечер. Есть код сендера: IdSMTP1->AuthenticationType=atLogin; IdSMTP1->UserId = "qwerty@yandex.ru"; IdSMTP1->Password = "****"; IdSMTP1->Host =...
C++ Ошибка приведенного оператора, альтернативы http://www.cyberforum.ru/cpp-beginners/thread344758.html
4.31 Чем ошибочен приведенный ниже оператор? Напишите правильный оператор, который бы выполнял то, что пытался, вероятно, сделать программист. cout « ++( х + у ); Попробовал выдает ошибку,...
C++ Не могу исправить ошибку :113 H:\Dev-Cpp\Проекты\уроки\Безымянный3.cpp cannot convert `IDirectDraw7**' to `IDirectDraw**' for argument `2' to `HRESULT DirectDrawCreate(GUID*, IDirectDraw**, IUnknown*) Недавно начал изучать оконные программы и работу с DirectX. Но при написании программы столкнулся с проблемой: не могу исправить одну ошибку...Хотя код вроде бы верный.Пожалуйста помогите,уважаемые... подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
25.08.2011, 19:28
Цитата Сообщение от Stalin45 Посмотреть сообщение
Благодарю за глубокие объяснения. Изучил механизмы конструктора копирования и перегрузки присваивания. Остались 2 вопроса:

1). Я правильно понял, конструктор копирования запускается в момент инициализации только что созданного объекта, а перегруженная операция присваивания во всех остальных случаях присваивания?
2). В строках:
C++
1
2
3
4
5
String operator= (const String& s1) {int len = strlen(s1.st);
                                       st = new char[len+1];
                                       strcpy(st, s1.st);
                                       return String(st);
                                      }
Для чего вообще возвращать куда-то (не пойму, куда) значение, если я итак уже сделал все, что нужно в строке:
C++
1
 strcpy(st, s1.st);
У вас неправильно написан оператор присваивания. Вы заабыли удалить память, на которую указывает указатель st того объекта, которому вы присваиваете новое значение.

Что касается конструктора копирования, то он также используется, когда вы передаете объекты в качестве аргументов функций, и при возвращении из функций объектов вашего класса.

 Комментарий модератора 
Убедительная просьба - заканчивайте постоянный оверквотинг. Нет никакого смысла каждый раз цитировать сообщение целиком, лучше сделать несколько цитат, но цитировать существенные места, которые вы комментируете.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru