Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Visual C++ C++ microsoft visual как сделать морской бои шаг за шагом? C++ microsoft visual как сделать морской бои шаг за шагом? https://www.cyberforum.ru/ visual-cpp/ thread155516.html Subbclassing приаттаченного контрола Visual C++
Здравствуйте, уважаемые форумчане! Нужно просабклассировать CEdit через CWnd::SubclassWindow, проблема в том что к HWND интересующего Edit'а уже приаттачен экземпляр CWnd, из-за чего вызов...
Visual C++ VC++ 2008. Нужны 5 *.h файлов Всем привет. У кого VC++ 2008, поделитесь со следующими файлами, пожалуйста. ATLBASE.H ATLCONV.H ATLDEF.H ATLIFACE.H ATLWIN.H https://www.cyberforum.ru/ visual-cpp/ thread155304.html Visual C++ Видеокамера Axis, здесь кто нибудь с ней работает? https://www.cyberforum.ru/ visual-cpp/ thread155201.html
Нужна помощь, специалисты откликнитесь. Необходимо получить картинки с камеры в формате jpg......
Visual C++ Ищу Grid
Скажите, есть ли уже готовый класс, воспроизводящий таблицы (Grid) для MSVC++? Стандартный MFCPropertyGrid не подходит - нужен полноценный.
Visual C++ Перевод кодировок https://www.cyberforum.ru/ visual-cpp/ thread155061.html
Здравствуйте. Столкнулся с проблемой кодировок. Один из модулей моей программы подгружает html код страницы в string. Но проблема в том, что на сайтах кодировка отнюдь не ANSII, а, зачастую, UTF-8....
Visual C++ обработчик https://www.cyberforum.ru/ visual-cpp/ thread155043.html
как для новых команд меню создать обработчик сообщения WM_COMMAND ,подскажите, зарание брагодарен
Написание ActiveX в Visual Studio 2008 Visual C++
Всем привет! Ранее никогда не писал ActiveX и вот настал момент сделать это для продукта 1С. Знаю язык С++ и есть небольшие навыки работы в Visual Studio 2008. Подскажите, пожалуйста, как в...
Visual C++ пишем почтовик https://www.cyberforum.ru/ visual-cpp/ thread154815.html
всем доброго времени суток! вот задумал что-то вроде аськи или агента для отправки сообщений через интернет и локальную сеть, но никогда не работал с такими штуками ) кто бы мне разъяснил принципы...
Visual C++ Общение клиент-сервер https://www.cyberforum.ru/ visual-cpp/ thread154787.html
Пишу упрощенную модель клиент-серверной системы(Один процесс, клиентские и серверный поток). Клиент в рандомные промежутки времени посылает сообщения серверу в очередь, но вот в чем вопрос, как...
Библиотеки GUI Visual C++
Заранее прошу прощения за некорректно поставленный вопрос, но все же... какие есть библиотеки (для vc++ разумеется) для создания интерфейса? Ну там, знаком с MFC, QT, GTK+. А какие еще есть? Какие бы...
Visual C++ Как получить имя класса окна? Всем привет! Написал вот такой код: #include "stdafx.h" #include <windows.h> #pragma comment(lib, "User32.lib") int _tmain() { void Find(){ HWND hWnd; hWnd = FindWindow(NULL,... https://www.cyberforum.ru/ visual-cpp/ thread154282.html
Эксперт С++
1667 / 1039 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
25.07.2010, 11:20 0

Конструкторы - Visual C++ - Ответ 873587

25.07.2010, 11:20. Показов 856. Ответов 2
Метки (Все метки)

Ответ

Конструктор копирования предназначен для создания копии объекта (очевидно, из уже существующего). Его сигнатура будет выглядеть так:
List::List(const List& src);
Поскольку у тебя контейнер, в таком конструкторе тебе нужно будет скопировать содержимое, то есть, воспроизвести в создаваемом объекте такой же список, как у src и наполнить его такими же данными. Объект src (тот, который копируем) и его список при этом изменять нельзя.

Конструктор по умолчанию не имеет параметров и предназначен для создания объектов без указания тех параметров (например, в объявлениях
List l1; List l2[10]; - в первом случае параметры не указаны, во втором вообще массив, там параметры указать невозможно). Сигнатура конструктора по умолчанию, очевидно, такая:
List::List()
В твоём случае, вероятно, достаточно создать пустой список.

Оператор присваивания предназначен для занесения содержимого одного объекта в другой, уже существующий. Сигнатура такая:
List& List::operator = (const List& src);
Очевидно, что в нём тебе надо уничтожить собственный список и затем скопировать список из src (точнее, реконструировать, как в конструкторе копирования). Опять же, изменять src и его список при этом нельзя.
Для того, чтобы поддерживать синтаксис "цепочечных" присваиваний (вроде a = b = c = d;), обычно рекомендуется (хотя в принципе это и необязательно) возвращать из оператора присваивания ссылку на объект, в который записано значение (то есть, return *this;). Для этого-то его тип возвращаемого значения и указан как List&. Хотя, если тебе такие цепочки не нужны, можно придать оператору тип void.

Операцию копирования списка, задействованную в конструкторе копирования и операторе присваивания, имеет смысл вынести в отдельную служебную функцию в секции private, чтобы не дублировать код. Та же рекомендация относится к очистке списка, которая будет вызываться и в операторе присваивания, и в деструкторе.

Вернуться к обсуждению:
Конструкторы Visual C++
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.07.2010, 11:20
Готовые ответы и решения:

конструкторы
Здравствуйте! Давеча по учебе пришлось мне столкнуться с конструкторами. В качестве примера мне...

Написать класс Треугольник... (Конструкторы С++)
Здравствуйте, помогите с решением нужно Написать класс треугольник имеющий 3 конструктора (...

Конструкторы, не могу прокоментировать текст проги
class stack { private: enum { Empty=-1}; char *s int max_len, top; public: stack(); ...

В проекте VS2012 компилятор игнорирует конструкторы классов
Компилятор отлично компилирует проект и не выдаёт ошибок, но при генерации DEBUG версии и надо...

2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.07.2010, 11:20

Конструкторы и поля
Зравствуйте, что-то не могу сообразить какие параметры или какие методы, поля использовать с этой...

[дизайн и эволюция] провалы в variadic конструкторы
всем привет. уже несколько человек обращались ко мне по почте, с просьбой помочь разобраться с...

Конструкторы,передача сообщений объектам и реакции объектов на сообщения в С++
Привет всем! Тему чуть-чуть понимаю,но задачу сделать не могу, вы не могли бы мне помочь с этим?...

Webpack собирает проект, а приложение говорит что мои конструкторы не конструкторы
Помогите пожалуйста, в едином файле (не билде) всё работает хорошо, как только начинаю отделять...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.