|
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
|
|
Вопрос про конструктор класса по умолчанию29.10.2011, 18:32. Показов 6161. Ответов 50
Метки нет (Все метки)
http://s2.ipicture.ru/uploads/... AtbNYV.jpg
Пункт первый не могу немного понять.Т.е получается,что всегда лучше создавать самому конструктор класса ? Не по теме: Ппц,как так можно книги выпускать.Сплошные опечатки,пропуски букв,не полный перевод комментариев...
0
|
|
| 29.10.2011, 18:32 | |
|
Ответы с готовыми решениями:
50
Конструктор класса не видит конструктор по умолчанию другого класса Для класса не существует конструктор по умолчанию
|
|
Заблокирован
|
||
| 29.10.2011, 18:36 | ||
|
Конструктор по умолчанию, создаваемый компилятором, соответсвует конструктор, который бы вы сами написали, и у которого не будет списка инициализации и будет пустое тело.
1
|
||
|
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
|
|
| 29.10.2011, 18:41 [ТС] | |
|
Просто по примеру ,мне кажется ,что неопределенный конструктор может привести к крашу программы
0
|
|
|
Заблокирован
|
||
| 29.10.2011, 18:47 | ||
|
1
|
||
|
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
|
|
| 29.10.2011, 18:53 [ТС] | |
|
Например,неинициализированная целая переменная может содержать -858993460,что в большинстве будет программ,будет ,вероятно недопустимым значением для данной переменной .
Как вот это понимать и как это повлияет на работу программы?
0
|
|
|
Заблокирован
|
||
| 29.10.2011, 18:57 | ||
|
1
|
||
|
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
|
|
| 29.10.2011, 19:03 [ТС] | |
|
Сыроежка, Контруктор,как я понял из книги позволяет при объявлении переменной класса задать ей значения при ее объявлении,а если допустим я не хочу задавать ей значения при объявлении.По влияет ли в таком случае этот конструктор по умолчанию на работу программы?
Если я не объявлю конструктор сам,а потом попытаюсь присвоить переменной класса значение,то произойдет ошибка?
0
|
|
|
Заблокирован
|
||||||||||||
| 29.10.2011, 19:27 | ||||||||||||
|
Это совершенно не означает, что конструктор по умолчанию не может иметь параметров. Но это означает, если у конструктора есть параметры, то, чтобы он был конструктором по умолчанию, все его параметры должны иметь аргументы по умолчанию. Компилятор неявног создает конструктор по умолчанию без параметров, а это означает, что никакое значение при создании объекта класса не передается. Вы не можете создать объект, передав ему значение. Рассмотрим простой пример.
Поэтому мы можем создать объекты первым и вторым способом, задав конкретное значение взамен значения по умолчанию. Ежели мы сами не определим конструктор для этого класса, то компилятор его определит за нас со следующим определением
1
|
||||||||||||
|
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
|
|
| 29.10.2011, 19:51 [ТС] | |
|
Сыроежка, ну в это я въехал.
Я просто вот это замечание из книги к первому пункту немного не понимаю: Неиницированная переменная обычно содержит значение -"мусор" Например,неинициализированная целая переменная может содержать -858993460,что в большинстве программ будет ,вероятно недопустимым значением для данной переменной . Вот это относится к ситуации,когда я попытаюсь ,не объявив конструктор самостоятельно,задать значение переменной класса при создании ?
0
|
|
|
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
|
|||||||
| 29.10.2011, 20:13 | |||||||
0
|
|||||||
|
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
|
|
| 30.10.2011, 13:41 [ТС] | |
|
Что вообще называется неиницированной переменной и как она связана с конструктором по умолчанию ?
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 30.10.2011, 16:07 | ||||||
|
iluxa1810, Неинициализированной... Любая переменная, которая не инициализирована. У POD типов нету конструкторов, т.к. они не являются классами. Поэтому
1
|
||||||
|
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
|
|
| 30.10.2011, 16:15 [ТС] | |
|
Т.е получается,что в только что объявленный переменных переменных лежат случайные значения?
Понятно,спс.
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 30.10.2011, 16:17 | |
|
iluxa1810, В только что объявленных переменных ПОД типов. Или же если переменная - объект класса, а в нем есть под-типы, но нет конструктора по умолчанию.
0
|
|
|
Заблокирован
|
|||||||
| 30.10.2011, 16:22 | |||||||
Мораль: не хотите проблем, и быдлокода на с++, пишите в рамках парадигмы с++, а не сишного суржика. Каноническая форма записи класса: всегда есть конструктор по умолчанию, копирующий, деструктор, безопасный метод clear();
0
|
|||||||
|
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
|
|
| 30.10.2011, 16:25 | |
|
Bers
Это я знаю.
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 30.10.2011, 16:29 | ||||||
|
Bers, Не скажу, что ущербна.
Все же не спроста списки инициализации придумали.
0
|
||||||
|
Заблокирован
|
|
| 30.10.2011, 16:36 | |
|
ForEveR, не компилируется по двум причинам:
1. В моей старенькой студии отсутствует #include <initializer_list> 2. error C2552: c: инициализация не агрегированных данных с помощью списка инициализации не допускается Попытка инициализации приватных членов. Я не могу точно сказать как происходит инициализация в приведенном вами коде, но подозреваю, что такое не по стандарту. Элементарно, снаружи класса нет доступа к приватным членам. Ага.
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 30.10.2011, 16:39 | |
|
Bers, http://liveworkspace.org/code/... d0707f53e2
1. Код абсолютно корректен и компилируется. 2. Код полностью соответствует текущему стандарту языка.
0
|
|
|
Заблокирован
|
||
| 30.10.2011, 16:41 | ||
|
Нарушение инкапсуляции?
0
|
||
| 30.10.2011, 16:41 | |
|
Помогаю со студенческими работами здесь
20
Вопрос про конструктор Cделать конструктор по умолчанию и копирования для класса Вопрос про конструктор и инициализвцию Конструктор класса по умолчанию: код компилируется, хотя по идее не должен
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|