Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Высвобождение ресурсов
|
|||
|---|---|---|---|
|
#18+
А за каким таким мне надо наследовать конструктор базового класса в C++? Он (его default разновидность) неявно вызывается при попытке создания инстанса производного класса, хотя вы можете делать это и явно. Поэтому логика такая - базовый класс инициализирует protected members, а производный класс наследует их, а не весь конструктор целиком, что есть глубоко правильно. Так что с точки зрения ANSI C++ код class base { public: base(int a){} }; class derived: public base { public: }; void main(void) { derived drv = new derived(10); } таки должен компилиться, если его переписать так (нормальный default constructor) class base { int secret; public: base(int a = 10){} }; base::base(int a) { secret = a; } class derived: public base { public: }; void main(void) { derived drv(); } а derived() компайлер сам напишет за Вас. Теперь всем адептам RAD средств (C#, Java, Delphi, etc..), особенно тем из них, кого тошнит от C++ - не путайте божий дар с яичницей. C/C++ - это то, на чём пишут ОС (UNIX, Windows), драйвера устройств, сервера баз данных, серьёзную матеатику и проч. Да, это pain in the ass, писать GUI даже на SDK без MFC поддержки. Ну так и пишите себе на здоровье, хоть на C#, хоть на VB.Net, хоть на Delphi, но не трогайте своими GUIшными руками святого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2004, 21:42 |
|
||
|
Высвобождение ресурсов
|
|||
|---|---|---|---|
|
#18+
авторА за каким таким мне надо наследовать конструктор базового класса в C++? Один минус в ненаследовании конструкторов (как мне кажется) , попробую рассуждать логически: если конструктор не наследуется, значит не наследуется программный код этого конструктора. В таком случае, все производные классы нуждаются в коде родителя, иначе нельзя будет скомпилить(выполнить) код потомка, т.е. код потомка несамодостаточен. Значит всегда нужно за собой "таскать" код родителя. Поэтому, если в Delphi конструктор наследуется, действительно ли можно обойтись без базового класса? Какие есть мысли по этому поводу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2004, 09:14 |
|
||
|
Высвобождение ресурсов
|
|||
|---|---|---|---|
|
#18+
softbuilder@inbox.ru Это какой код предка надо переновить в потомка? Ничего переносить не надо - вот такой код будет работать Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2004, 10:05 |
|
||
|
Высвобождение ресурсов
|
|||
|---|---|---|---|
|
#18+
Я имел ввиду двоичный код, который при компиляции получается. В твоём примере, если всё будет находится в одной DLL - понятно что будет всё работать. Представь, что у тебя есть DLL c кодом родителя, ты компилишь DLL с кодом потомка, указав связь с DLL родителя. Всё нормально компилится. Теперь DLL родителя удаляем. Далее ты пишешь программу где создаёшь экземпляр потомка. Что получаем? Так как конструктор не наследуется и DLL родителя нет, что произойдет при вызовк base()? Подозреваю, что ошибка. Вот об этом и речь. А в случае Delphi, как я понимаю этого не произойдёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2004, 10:21 |
|
||
|
Высвобождение ресурсов
|
|||
|---|---|---|---|
|
#18+
Да нет - это произойдет в любом случае - ни фига себе - убить код предка и ожидать нормальной работы!! Наследование - это же не copy&paste ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2004, 11:17 |
|
||
|
Высвобождение ресурсов
|
|||
|---|---|---|---|
|
#18+
Вот-вот. Поэтому интересно, в Delphi также? Если в Delphi также, то какой прок от наследования конструкторов, непонятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2004, 12:08 |
|
||
|
Высвобождение ресурсов
|
|||
|---|---|---|---|
|
#18+
то какой прок от наследования конструкторов По-мойму, это типично RAD-овская "фича"... (чтобы "пальцами меньше по клаве стучать"), вспомните VFP, например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. А при создании С#, соответственно, не "пошли на поводу" у человеческой лени, а решили сделать код более "структурированным" и "организованным" (ИМХО). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2004, 13:19 |
|
||
|
|

start [/forum/topic.php?fid=20&gotonew=1&tid=1439494]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
139ms |
get topic data: |
11ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 483ms |

| 0 / 0 |
