|
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
|
|
Вопрос про конструктор класса по умолчанию29.10.2011, 18:32. Показов 6144. Ответов 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делать конструктор по умолчанию и копирования для класса Вопрос про конструктор и инициализвцию Конструктор класса по умолчанию: код компилируется, хотя по идее не должен
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|