|
|
|
Абстракные классы Help - тупняк напал
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, простой пример, но неработает. помогите разобраться почему. Код: 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. 36. 37. 38. 39. 40. 41. 42. 43. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2007, 15:18 |
|
||
|
Абстракные классы Help - тупняк напал
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. А зачем тут const? Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2007, 15:30 |
|
||
|
Абстракные классы Help - тупняк напал
|
|||
|---|---|---|---|
|
#18+
Вариант № 2: Код: 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. 36. 37. 38. 39. 40. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2007, 15:48 |
|
||
|
Абстракные классы Help - тупняк напал
|
|||
|---|---|---|---|
|
#18+
Ruslan.Isbarov Код: plaintext 1. А зачем тут const? Конечно const тут непричем. но библиотека iostrem у меня подключена и по этому поводу конфликотов нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2007, 15:59 |
|
||
|
Абстракные классы Help - тупняк напал
|
|||
|---|---|---|---|
|
#18+
Причем здесь iostream? Вы определяете виртуальную функцию-член Play() и помечаете ее как const. Естесственно, что в производных классах также нужно Play() пометить как const (см. вариант № 2): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Либо вообще убрать const: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2007, 16:07 |
|
||
|
Абстракные классы Help - тупняк напал
|
|||
|---|---|---|---|
|
#18+
Вообще, iostream я использовал просто для проверки работоспособности Вашего примера. Привычка у меня пользоваться iostream'ом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2007, 16:10 |
|
||
|
Абстракные классы Help - тупняк напал
|
|||
|---|---|---|---|
|
#18+
)) Спасибо !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2007, 17:07 |
|
||
|
Абстракные классы Help - тупняк напал
|
|||
|---|---|---|---|
|
#18+
Извините за ламерский вопрос: А CWind::Play() объявлять как virtual не надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2007, 17:27 |
|
||
|
Абстракные классы Help - тупняк напал
|
|||
|---|---|---|---|
|
#18+
AmdeiИзвините за ламерский вопрос: А CWind::Play() объявлять как virtual не надо? Надо, если Вы хотите создать класс, производный от CWind и заместить в нем функцию-член Play(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2007, 17:40 |
|
||
|
Абстракные классы Help - тупняк напал
|
|||
|---|---|---|---|
|
#18+
Amdei А вообще, рекомендую почитать ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2007, 17:44 |
|
||
|
Абстракные классы Help - тупняк напал
|
|||
|---|---|---|---|
|
#18+
Ruslan.Isbarov AmdeiИзвините за ламерский вопрос: А CWind::Play() объявлять как virtual не надо? Надо, если Вы хотите создать класс, производный от CWind и заместить в нем функцию-член Play().Гм. Т.е. это не то что требвоалось в исходном посте? Ну тогда ладно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2007, 17:57 |
|
||
|
Абстракные классы Help - тупняк напал
|
|||
|---|---|---|---|
|
#18+
AmdeiГм. Т.е. это не то что требвоалось в исходном посте? Вообще-то в исходном посте, от класса CInstrument создавались 2 производных класса - CWind и CViola. В обоих производных классах замещается функция Play() базового класса. Поэтому, в классе CInstrument функция Play() является виртуальной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2007, 18:19 |
|
||
|
Абстракные классы Help - тупняк напал
|
|||
|---|---|---|---|
|
#18+
А какая может быть практическая ценность от перееопределения виртуальной функции базового класса как не виртуальной в производном(ых)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2007, 18:21 |
|
||
|
Абстракные классы Help - тупняк напал
|
|||
|---|---|---|---|
|
#18+
AmdeiА какая может быть практическая ценность от перееопределения виртуальной функции базового класса как не виртуальной в производном(ых)? Вам стоит почитать про динамический полиморфизм. А также, взгляните на следующий пример: Код: 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. 36. 37. 38. 39. 40. 41. Попробуйте в этом случае обойтись без виртуальных функций-членов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2007, 19:24 |
|
||
|
Абстракные классы Help - тупняк напал
|
|||
|---|---|---|---|
|
#18+
Да, кстати, результат работы этой программы: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2007, 19:34 |
|
||
|
Абстракные классы Help - тупняк напал
|
|||
|---|---|---|---|
|
#18+
2Ruslan.Isbarov: Спасибо :-) Собственно моё недоразумение вызвал возникший у меня вопрос, отличаются ли чем-нибуть следующие фрагменты кода: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Но в своей практике я всегда писал как во втором примере - для облегчения последующих разбирательств. Вот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2007, 18:45 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34287346&tid=2029561]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
220ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
79ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 595ms |

| 0 / 0 |
