|
|
|
ООП Delphi -> C++
|
|||
|---|---|---|---|
|
#18+
Стоит задача - переделать прогу с Delphi на C++. В проге на Delphi наравне с прочими есть классы: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. Вопрос в следующем - насколько я понял, Inherited означает вызов метода базового класса из производного. Как в таком случае будет выглядеть конструктор ExprClass::ExprParent(ExprClass *ASon) на C++? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 09:02 |
|
||
|
ООП Delphi -> C++
|
|||
|---|---|---|---|
|
#18+
Сорри описался. Естественно ExprParent::ExprParent(ExprClass *ASon) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 09:04 |
|
||
|
ООП Delphi -> C++
|
|||
|---|---|---|---|
|
#18+
Наверное что-то типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 09:24 |
|
||
|
ООП Delphi -> C++
|
|||
|---|---|---|---|
|
#18+
а почему нельзя так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 11:50 |
|
||
|
ООП Delphi -> C++
|
|||
|---|---|---|---|
|
#18+
По С++ я не спец (давно не занимался этим делом). Предложенный вариант просто взял из книжки под рукой :) Да и вообще он вроде самый употребимый. Насчет вашего варианта - а он работает? Если да, значит можно и так :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 11:55 |
|
||
|
ООП Delphi -> C++
|
|||
|---|---|---|---|
|
#18+
Iskan DerПо С++ я не спец (давно не занимался этим делом). Предложенный вариант просто взял из книжки под рукой :) Да и вообще он вроде самый употребимый. Насчет вашего варианта - а он работает? Если да, значит можно и так :) Я то тем более не спец, поэтому и спрашиваю. Ладно спасибо за совет, будем пробовать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 12:10 |
|
||
|
ООП Delphi -> C++
|
|||
|---|---|---|---|
|
#18+
Еще один вопрос - если в производном классе есть метод с таким же именем и типом, как в базовом классе, например void SetCanvas(), надо ли его в базовом описывать как virtual? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 12:27 |
|
||
|
ООП Delphi -> C++
|
|||
|---|---|---|---|
|
#18+
aspirin_Еще один вопрос - если в производном классе есть метод с таким же именем и типом, как в базовом классе, например void SetCanvas(), надо ли его в базовом описывать как virtual? Смотря чего хотите добиться :) Скажем: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 13:27 |
|
||
|
ООП Delphi -> C++
|
|||
|---|---|---|---|
|
#18+
А если слово inherited не в конструкторе, а в другом методе, как тогда быть? Пример: Код: plaintext 1. 2. 3. 4. 5. Как это будет на C++ ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2007, 20:50 |
|
||
|
ООП Delphi -> C++
|
|||
|---|---|---|---|
|
#18+
aspirin_а почему нельзя так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Так действительно нельзя. Т.е. результат ты получишь не тот, который ожидаешь. ExprClass::ExprClass(); - создает временный объект, который сразу же и уничтожается, поскольку не используется. Контсруктор по умолчанию базавого класса можно не звать в списке инициализации, он вызывается автоматически в процессе конструирования объект. aspirin_Еще один вопрос - если в производном классе есть метод с таким же именем и типом, как в базовом классе, например void SetCanvas(), надо ли его в базовом описывать как virtual? зависит от цели. если нужен полиморфизм, то нужно объявить ей вирутальной. не нужен - тогда произойдет прегрузка родительской функции и новая её скроет. aspirin_А если слово inherited не в конструкторе, а в другом методе, как тогда быть? Пример: Код: plaintext 1. 2. 3. 4. 5. Как это будет на C++ ? Нужно позвать функцию с явным разрешением имен. Т.е. ExprClass::DynaSetCanvas(); PS: лучше возьми книгу по С++ и не будет таких вопросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2007, 02:26 |
|
||
|
ООП Delphi -> C++
|
|||
|---|---|---|---|
|
#18+
aspirin_Стоит задача - переделать прогу с Delphi на C++ В смысле - "с одного языка, который не знаете, на другой, который не знаете"? Это непросто... я бы посоветовал взять книжки по обоим. Между ними есть ряд нетривиальных различий, переводя без понимания, попадете... не туда, в общем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2007, 00:14 |
|
||
|
ООП Delphi -> C++
|
|||
|---|---|---|---|
|
#18+
aspirin_Стоит задача - переделать прогу с Delphi на C++. Пардон, а зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2007, 18:21 |
|
||
|
ООП Delphi -> C++
|
|||
|---|---|---|---|
|
#18+
softwarer В смысле - "с одного языка, который не знаете, на другой, который не знаете"? Это непросто... я бы посоветовал взять книжки по обоим. Между ними есть ряд нетривиальных различий, переводя без понимания, попадете... не туда, в общем. Один из языков (Delphi) я более или менее знаю, второй (C++) изучаю. Книжек по обоим языкам у меня в избытке, но не в каждой книжке доходчиво описано про то что я спрашиваю, по крайней мере пока я такую нашел только одну - С.Прата - Язык программирования C++. Лекции и упражнения. Так_забежал_простоПардон, а зачем? Затем что надо. Если конкретно, то по трем основным причинам: 1) проект подразумевает создание продукта на C++; 2) среда разработки проекта будет приобретена у мелкософта, а т.к. она не содержит Паскаль-компилятора, то выбор языка очевиден ; 3) так я лучше изучу C++ и ООП, чем просто читая книжки. И вообще какая разница зачем? Мы здесь не философские вопросы обсуждаем а решаем конкретные вопросы по особенностям языков программирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2007, 21:20 |
|
||
|
ООП Delphi -> C++
|
|||
|---|---|---|---|
|
#18+
автор среда разработки проекта будет приобретена у мелкософта, а т.к. она не содержит Паскаль-компилятора, то выбор языка очевиден Если проект активно использет VCL классы, то переводить в мелкософтовский С++ будет очень неприятно. Может подумать о C++Builder. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2007, 22:00 |
|
||
|
ООП Delphi -> C++
|
|||
|---|---|---|---|
|
#18+
раз уж вы собираетесь изучать C++ то имейте ввиду что для программирования для Windows можно использовать Express версию среды MSVisualStudio 2005 кот. является бесплатной, докачав для нее PlatformSDK можно будет сделать уже многое.. Кроме того соит ли останавливаться только на Windows, есть открытая версия QT кот. позв. вам сделать кроссс-платф. приложение(для Windows в том числе), уж чем покупать MS VC - лучше QT коммерческий купить и вообще жить счастливо... тем более что при переходе с Delphi на C++ QT будет более понятен чем MFC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 19:19 |
|
||
|
ООП Delphi -> C++
|
|||
|---|---|---|---|
|
#18+
ну уж самый лёгкий переход с Delphi будет всё-же Builder. И среда похожая, и компоненты одни и те-же. Хороший способ освоить синтаксис, а параллельное чтение учебников и разных умных книжек позволит быстро пойти дальше. Моё имхо, что Qt прекрасная библиотека, но предъявляет требования к знанию языка на порядок большие, чем билдер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 23:11 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=34955142&tid=1345678]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
198ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 568ms |

| 0 / 0 |
