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

Компилятор просит указать const в конструкторе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ MessageBox API http://www.cyberforum.ru/cpp-beginners/thread629083.html
MessageBox API: не получаеться обработать выбор. Мой код: int SELECT = MessageBox(hwnd, _T("Вы действительно хотите завершить работу программы? ВНИМАНИЕ! В случае завершения работы программы, клиенты не смогут подключиться."), _T("Завершение работы"), MB_OKCANCEL | MB_ICONQUESTION); if (SELECT = MB_OK) { PostQuitMessage(0); }
C++ Перегрузка потокового оператора (<<). Выдает адрес вместо значения Сабж. Все компелится нормально. Если делать << void то работает ок см комменты если делать класса std::ostream& то возвращает 16чное значение. Заранее спасибо #ifndef Point_HPP // anti multiply including gates #define Point_HPP #include <sstream> http://www.cyberforum.ru/cpp-beginners/thread629067.html
C++ Реализовать шаблонный класс
В общем требуется реализовать шаблонный класс FixedArray<T,N> FixedArray - абстракция вокруг T Использование выглядит как то так: FixedArray<std::vector, 8> myArr1 = {1, 2, 3, 4}; FixedArray<std::string, 8> strArr = {"a", "b", "c", "d"};
stdlib.h - quicksort C++
Идея такова: отсортировать массив A очень быстрым методом Хоара. Пробовал в stdlib.h делать QuickSort - ничего не получилось. Все значения элементов - до 263-1. Т.е. влазят в тип long. Помогите отсортировать!
C++ KeyDown обрабатывает только символы http://www.cyberforum.ru/cpp-beginners/thread629012.html
Всем привет. Собственно сам вопрос, когда я вызываю функцию (пишу на WinApI, но вопрос из основ c++) Она реагирует только на буквы, цифры, а мне нужно ещё VK_LEFT, VK_RIGHT. Но почему то эта функция их не обрабатывает, вопрос почему. void CMovingBallDlg::KeyD(HWND hwnd, UINT vk, BOOL fDown, int cRepeat, UINT flags) { switch (wP) { case (VK_LEFT)://сообщение не обрабатывается {...
C++ Написать dll для дальнейшего использования в программах на других языках как правильно написать dll чтоб ей можно было пользоваться программам на других языках, например, на delphi подробнее

Показать сообщение отдельно
alsav22
5284 / 4803 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.07.2012, 12:30     Компилятор просит указать const в конструкторе
Тут о другом разговор. Если конструктор принимает константную ссылку на объект, это не значит, что сами данные этого объекта константны. Это только значит, что сам конструктор через эту ссылку не может менять объект. Я написал, что в вашем коде достаточно неявного констуктора копирования, который выполняет поверхностное копирование, т.е. просто копирует значения переменных одного объекта в другой. Проблема возникает с указателями, инициализированными оператором new. При поверхностном копировании, создаются копии указателей (адресов, которые они содержат), а не того, на что они указывают. Поэтому получается несколько объектов, с указателями, которые указывают на одну и ту же область памяти. Получаются, как бы, общие данные. Один объект, через указатели, меняет содержимое этой памяти, а другие объекты, и не знают об этом. При удалении одного объекта эта память освобождается. При удалении других, котрые содержат указатели на эту же память, делается попытка освободить уже свободную память, что приводит к ошибке. Поэтому, в этих случаях, задаётся явный конструктор копирования, который выполняет глубокое копирование, т.е. он копирует не указатели, а то, на что они указывают. После этого, у каждого объекта, указатели будут указывать на свою область памяти, со своими данными.
 
Текущее время: 00:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru