2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
|
|
1 | |
Конструкторы и деструкторы07.12.2012, 19:59. Показов 3796. Ответов 40
Метки нет (Все метки)
Прочитал про конструкторы и деструкторы. Пишут что они нужны для инициализации переменных класса. Как они используются я понял, но не понял зачем это нужно. Вместо конструктора можно ведь придумать любую другую функцию и она тоже самое будет делать?
Между строк 59 и 63 я не вижу деструктора. В строке 8 создаётся конструктор, в строках 18-20 происходит определение конструктора, в строке 58 применяется данный конструктор. Эти строки ведь можно заменить любой другой функцией? Извиняюсь. Конструкторы служат для создания и инициализации ОБЪЕКТОВ класса.
0
|
07.12.2012, 19:59 | |
Ответы с готовыми решениями:
40
Конструкторы и деструкторы Конструкторы и деструкторы Конструкторы и деструкторы Конструкторы и деструкторы |
CEO SOVAZ Corp.
|
|
07.12.2012, 20:03 | 2 |
Конструктор - это член класса, который используется для создания объектов класса. Конструктор имеет такое же название как и класс, но не имеет возвращаемого значения. Конструктор вызывается в месте выполнения оператора new.
0
|
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
|
||||||
07.12.2012, 20:08 [ТС] | 3 | |||||
Точно это же я и прочитал в книге))
Какой ещё конструктор. Объект я создам например так без всякого конструктора.
0
|
26 / 21 / 2
Регистрация: 14.07.2012
Сообщений: 176
|
||||||
07.12.2012, 20:16 | 6 | |||||
Конструктор в любом случае генерируется, в твоём случае - конструктор без аргументов по умолчанию. Однако можно создать и свой:
0
|
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
|
|
07.12.2012, 20:16 [ТС] | 7 |
Сообщение от Croessmah;
Ага, про это тоже читал. Написано что если не пишется конструктор и деструктор, то используются стандартные. Непонятно только зачем они применяются в коде. Использовались бы и дальше по умолчанию. Зачем прописывать их и использовать в качестве неполноценной функции в коде которая не возвращает значение?
0
|
Неэпический
|
|||||||||||
07.12.2012, 20:21 | 9 | ||||||||||
Не по теме: Скажите это программистам Си, которые только так и работали, да и чем по сути конструктор отличается от обычной функции? Ну кроме, как вызывается автоматом при создании объекта? Попробуйте скомпилировать
0
|
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
|
|
07.12.2012, 20:25 [ТС] | 10 |
Тут вставится стандартный конструктор и скомпилируется.
0
|
CEO SOVAZ Corp.
|
|
07.12.2012, 20:27 | 11 |
Да, скомпилируется...................................
Итого: <errors id="codeblocks)))" \Sources\test.cpp||In function 'int main()':| \Sources\test.cpp|4|error: 'A::A()' is private| \Sources\test.cpp|7|error: within this context| ||=== Build finished: 2 errors, 0 warnings ===| </errors>
0
|
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
|
|
07.12.2012, 20:28 [ТС] | 12 |
А как же информация о стандартных конструкторах?
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
||||||
07.12.2012, 20:30 | 13 | |||||
а это еще не самый сложный класс конструктор это не функция это конструктор, он не возвращает значения, его нельзя вызвать явно, он неразрывно связан с классом есть еще такие конструкторы копирования пойми что к конструктору нельзя относится как к функции, хотя он и похож на неё Добавлено через 1 минуту нет таких есть конструктор по умолчанию
0
|
CEO SOVAZ Corp.
|
|
07.12.2012, 20:30 | 14 |
Если переопределить конструктор, то должен использоваться он. В классе противоречнгсть: конструктор находится в запрещенном режиме->нельзя создать объект из main()->ошибки программы. Все ясно? Нет?->проверь)))
0
|
2 / 2 / 0
Регистрация: 27.11.2012
Сообщений: 131
|
|
07.12.2012, 20:34 [ТС] | 15 |
Нельзя создать Объект из main???
В примере из книги какраз из main создаётся объект. ошибка в книге?
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
|||||||||||
07.12.2012, 20:37 | 17 | ||||||||||
в данной интерпретации да
но так делают если нельзя создавать объект статически тогда переопределяют new в public блоке который и вызовет конструктор в результате
а
0
|
Неэпический
|
|
07.12.2012, 20:37 | 18 |
0
|
CEO SOVAZ Corp.
|
|||||||||||
07.12.2012, 20:38 | 19 | ||||||||||
Сравните строчки 2.
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
|
07.12.2012, 20:40 | 20 |
0
|
07.12.2012, 20:40 | |
07.12.2012, 20:40 | |
Помогаю со студенческими работами здесь
20
Конструкторы и деструкторы Конструкторы и деструкторы Конструкторы и деструкторы Конструкторы и деструкторы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |