Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
В качестве параметра конструктора указатель на сам объект
|
|||
|---|---|---|---|
|
#18+
Класс А (точнее его потомки) оперируют указателем на объекты типа Х, получая его как параметр конструктора. В тоже время класс B, реализующий оба интерфейса должен в качестве этого параметра получить самого себя. Данный код корректен? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. С уважением, Naf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2015, 17:02 |
|
||
|
В качестве параметра конструктора указатель на сам объект
|
|||
|---|---|---|---|
|
#18+
А откуда в твоем B, А сможет получить X? И вообще, если A уже имеет X в качестве поля, зачем делать X предком B? Намного проще будет: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2015, 19:11 |
|
||
|
В качестве параметра конструктора указатель на сам объект
|
|||
|---|---|---|---|
|
#18+
NafКласс А (точнее его потомки) оперируют указателем на объекты типа Х, получая его как параметр конструктора. В тоже время класс B, реализующий оба интерфейса должен в качестве этого параметра получить самого себя. Данный код корректен? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. С уважением, Naf Можно, если не использовать X в конструкторе А. Но я бы еще раз подумал над дизайном. Множественное наследование классов (не интерфейсов) не требуется в 99.99% задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2015, 20:49 |
|
||
|
В качестве параметра конструктора указатель на сам объект
|
|||
|---|---|---|---|
|
#18+
YesSqlМожно, если не использовать X в конструкторе А. Почему? Он же вызывается уже после того, как Х полностью сформирован. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2015, 21:04 |
|
||
|
В качестве параметра конструктора указатель на сам объект
|
|||
|---|---|---|---|
|
#18+
спасибо, решил сделать "более абстрактными" Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2015, 09:53 |
|
||
|
В качестве параметра конструктора указатель на сам объект
|
|||
|---|---|---|---|
|
#18+
Naf, Данный код корректен? Да, корректен. Но есть маленький нюанс -- здесь нет использования этого объекта X* x; в коде. Так вот, в момент, когда он будет использован, указатель должен ссылаться на валидный и полнстью сконструированный объект класса X. В таком случае всё будет ОК. (на всякий случай подчеркну -- в конструкторах и деструкторах как правило этот x будет использовать нельзя). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2015, 12:37 |
|
||
|
В качестве параметра конструктора указатель на сам объект
|
|||
|---|---|---|---|
|
#18+
Можно, если не использовать X в конструкторе А. На самом деле это правиль нестрогое, иногда можно испльзовать этот X и в конструкторе, и в деструкторе, вопрос только -- в каком конструкторе, и в каком его месте. Формальное требование одно -- объект X должен быть валидным на момент использования, т.е. полнстью инициализированным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2015, 12:39 |
|
||
|
В качестве параметра конструктора указатель на сам объект
|
|||
|---|---|---|---|
|
#18+
Nafспасибо, решил сделать "более абстрактными" Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. А это не больно поможет, потому что в конструкторе A будет вызываться A::getX(). А если не в конструкторе, то бессмысленно делать геттер на ссылку. Хотя, это может быть полезно, если это поле должно быть и в интерфейсе класса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2015, 12:40 |
|
||
|
В качестве параметра конструктора указатель на сам объект
|
|||
|---|---|---|---|
|
#18+
MasterZivобъект X должен быть валидным на момент использования, т.е. полнстью инициализированным. А ты можешь привести пример, когда при объявлении Код: sql 1. конструктор А вызовется раньше, чем объект Х полностью проинициализируется? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2015, 13:02 |
|
||
|
В качестве параметра конструктора указатель на сам объект
|
|||
|---|---|---|---|
|
#18+
не, не в конструкторе/деструкторе этот Х не используется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2015, 13:24 |
|
||
|
В качестве параметра конструктора указатель на сам объект
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovMasterZivобъект X должен быть валидным на момент использования, т.е. полнстью инициализированным. А ты можешь привести пример, когда при объявлении Код: sql 1. конструктор А вызовется раньше, чем объект Х полностью проинициализируется? Так а практически всегда, при использовании в X виртуальных функций, переопределённых в B. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2015, 14:23 |
|
||
|
В качестве параметра конструктора указатель на сам объект
|
|||
|---|---|---|---|
|
#18+
MasterZivDimitry Sibiryakovпропущено... А ты можешь привести пример, когда при объявлении Код: sql 1. конструктор А вызовется раньше, чем объект Х полностью проинициализируется? Так а практически всегда, при использовании в X виртуальных функций, переопределённых в B.Что? Поподробнее можно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2015, 14:30 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38968145&tid=2018974]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 163ms |

| 0 / 0 |
