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

Класс: конструктор и деструктор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как поменять вид курсора на в ВинАпи http://www.cyberforum.ru/cpp-beginners/thread58704.html
Здравствуйте Нужно поменять курсор при нажатии пункта меню. Сделала меню, два курсора, .. зависла на WM_COMMAND case WM_COMMAND: { switch(LOWORD(wParam)) { case IDM_FILE_CURSOR: if (a==1) a=0;
C++ целочисленная прямоугольная матрица Дана целочисленная прямоугольная матрица. Определить: 1)количество столбцов, содержащих хотя бы один нулевой элемент (оформить в виде функции) 2)номер строки,в котором находится максимальное количество полных квадратов (оформить в виде процедуры) Добавлено через 22 секунды Пожалуйста помогите!!! http://www.cyberforum.ru/cpp-beginners/thread58691.html
C++ Для заданной марицы вычислить значение среднего арифметического элементов k-го столбца и n-й строки
Написать функцию, которая для заданного двухмерного массива типа int вычисляет и возвращает значение среднего арифметического элементов k-го столбца и п-й строки. Написать программу, которая описывает и задает значения элементов массива А размерностью 3*4, описывает и вводит с клавиатуры массив В размерностью 2*3, вычисляет и выводит на экран сумму средних арифметических первого столбца и...
Строки, которые одновременно содержатся в двух заданных текстовых файлах C++
ребята помогите Пожалуйста!!!! Условие:Написать программу, выводящую на экран строки, которые одновременно содержатся в двух заданных текстовых файлах. Имена файлов прочесть с клавиатуры. Сами файлы с текстом предварительно создать на любом из доступных дисков.
C++ Вопрос по нажатию клавиш http://www.cyberforum.ru/cpp-beginners/thread58688.html
Смотрю книги и уроки по Си, но не в одной не чего не упоминается о такой вещи: Например как сделать, что бы в консольном при нажатии например клавиши ENTER - выводилось например вы нажали клавишу ENTER , при нажатии например клавиши CTRL - выводилось например вы нажали клавишу CTRL Типа if (нажата клавиша ENTER) { cout<<"вы нажали клавишу ENTER "; }
C++ Проверка правильности ввода строки Доброго дня! Имеется строка string str, задана изначально, пользователь вводит с клавиатуры другую строку string proverka, нужно проверить полное осимвольное совпадание двух строк. Есть ли какя-нибудь встроенная функция или надо самому прогаммировать? :) Что-то вроде проверки правильности ввода пароля. Если хотя бы один символ не совпадает, то всё, строка введена неверно. подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
17633 / 5857 / 378
Регистрация: 30.03.2009
Сообщений: 16,156
Записей в блоге: 26
25.10.2009, 17:10
Цитата Сообщение от JamesBlack Посмотреть сообщение
Или если я объявляю x, y, z в автоматической памяти, то до конца программы она не освободится никак? Просто тогда придется делать x, y, z указателями, а это, как мне многие говорили, довольно глупо делать ссылку на одиночную переменную int.
"если я объявляю x, y, z в автоматической памяти" - фраза не верная по своей сути. x, y, z - это НЕ самостоятельные переменные, это поля класса (т.е. составные части некоторого "большого" типа). Автоматическим, статическим или динамическим у тебя может быть объект (экземпляр) данного класса. А тип (в нашем случае класс) это всего лишь свойство объекта. Например яблоко - это объект (ибо является материальной сущностью), а его цвет - это свойство объекта. Цвет без яблока не может существовать. Точно так же и тип не имеет материальной сущности без объекта

Цитата Сообщение от JamesBlack Посмотреть сообщение
А деструктор? Как с ним быть?
Деструктор нужен только тогда, когда тебе нужны какие-то завершающие действия в момент удаления объекта (например, удаление динамической памяти, которую использовал объект). В твоём случае объект не делает никаких телодвижений, требующих завершения, а потому он попросту не нужен. Ну или можно его написать, но оставить пустым

Цитата Сообщение от JamesBlack Посмотреть сообщение
И зачем конструктор копии?
При копировании объектов действие по умолчанию - это простое копирование всех полей. Когда этого недостаточно, то пишут свой конструктор копии. Как правило это так же упирается в работу с динамической памятью. Если объект выделил себе динамическую память, то копия объекта должна использовать собственную динамическую память, а потому придётся писать конструктор копии. В твоём случае опять-таки нет никакой работы с динамической памятью, поэтому конструктор копии не нужен (компилятор сам создаст его, и он будет тупо переписывать все значения полей)

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