Форум программистов, компьютерный форум CyberForum.ru

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 = "smtp.yandex.ru"; IdSMTP1->Port = 25;
C++ Ошибка приведенного оператора, альтернативы http://www.cyberforum.ru/cpp-beginners/thread344758.html
4.31 Чем ошибочен приведенный ниже оператор? Напишите правильный оператор, который бы выполнял то, что пытался, вероятно, сделать программист. cout « ++( х + у ); Попробовал выдает ошибку, решил сделать так #include "stdafx.h" #include <iostream> int main()
C++ Не могу исправить ошибку :113 H:\Dev-Cpp\Проекты\уроки\Безымянный3.cpp cannot convert `IDirectDraw7**' to `IDirectDraw**' for argument `2' to `HRESULT DirectDrawCreate(GUID*, IDirectDraw**, IUnknown*) Недавно начал изучать оконные программы и работу с DirectX. Но при написании программы столкнулся с проблемой: не могу исправить одну ошибку...Хотя код вроде бы верный.Пожалуйста помогите,уважаемые форумчане.Вот текст ошибки:113 H:\Dev-Cpp\Проекты\уроки\Безымянный3.cpp cannot convert `IDirectDraw7**' to `IDirectDraw**' for argument `2' to `HRESULT DirectDrawCreate(GUID*, IDirectDraw**,... подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
25.08.2011, 19:28     Null pointer assignment.
Цитата Сообщение от 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 того объекта, которому вы присваиваете новое значение.

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

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