|
|
|
Перегруженный конструктор
|
|||
|---|---|---|---|
|
#18+
Проблема следующая, класс содержит член - ссылку, есть два конструктора, различаются одним параметром, а так все одинаково, при попытки использовать во втором конструкторе, первый, выдается следующее сообщение no appropriate default constructor available что не верно, очень не хочется переписывать одно и тоже два раза, или даже больше. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2007, 19:41 |
|
||
|
Перегруженный конструктор
|
|||
|---|---|---|---|
|
#18+
dimadvПроблема следующая, класс содержит член - ссылку, есть два конструктора, различаются одним параметром, а так все одинаково, при попытки использовать во втором конструкторе, первый, выдается следующее сообщение no appropriate default constructor available что не верно, очень не хочется переписывать одно и тоже два раза, или даже больше. Код: plaintext 1. 2. 3. 4. Надо так Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2007, 19:51 |
|
||
|
Перегруженный конструктор
|
|||
|---|---|---|---|
|
#18+
[src с++] A::A(ClassB& _B, int _iCount) :m_cMember(_B) // амперсанд перед _B лишний { [/src]---- Если молния в лоб угодит, Значит просто подставлен лоб ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2007, 19:53 |
|
||
|
Перегруженный конструктор
|
|||
|---|---|---|---|
|
#18+
dimadv пишет: > Автор: "dimadv" > Проблема следующая, класс содержит *член - ссылку,* есть два > конструктора, различаются одним параметром, а так все одинаково, при > попытки использовать во втором конструкторе, первый, выдается следующее > сообщение > no appropriate default constructor available > что не верно, очень не хочется переписывать одно и тоже два раза, или > даже больше. > > class A > { > private: > ClassB& m_cMember; > public: > A(ClassB& _B); > A(ClassB& _B, int _iCount) > } > > A::A(ClassB& _B):m_cMember(&_B) > { .... } > A::A(ClassB& _B, int _iCount) > { > A(_B); > ...... > } Это - создание временной переменной , а не вызов конструктора. Если очень надо, то делается это так: new (this) A(_B); Но в вашем случае я думаю лучше продублировать либо весь код конструктора в другом конструкторе, либо продублировать только инициализацию мемберов, а какой-то сложный общий код инициализации вынести в отдельную функцию, которую и вызывать из двух конструкторов. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2007, 12:27 |
|
||
|
Перегруженный конструктор
|
|||
|---|---|---|---|
|
#18+
MasterZiv dimadv пишет: > Автор: "dimadv" > Проблема следующая, класс содержит *член - ссылку,* есть два > конструктора, различаются одним параметром, а так все одинаково, при > попытки использовать во втором конструкторе, первый, выдается следующее > сообщение > no appropriate default constructor available > что не верно, очень не хочется переписывать одно и тоже два раза, или > даже больше. > > class A > { > private: > ClassB& m_cMember; > public: > A(ClassB& _B); > A(ClassB& _B, int _iCount) > } > > A::A(ClassB& _B):m_cMember(&_B) > { .... } > A::A(ClassB& _B, int _iCount) > { > A(_B); > ...... > } Это - создание временной переменной , а не вызов конструктора. Если очень надо, то делается это так: new (this) A(_B); Но в вашем случае я думаю лучше продублировать либо весь код конструктора в другом конструкторе, либо продублировать только инициализацию мемберов, а какой-то сложный общий код инициализации вынести в отдельную функцию, которую и вызывать из двух конструкторов. Posted via ActualForum NNTP Server 1.4 MasterZiv ты чему детей учишь? Не дай бог класс будет наследником кого-то и по второму разу пойдет инициализация папы, он ведь потом и не сообразит где ресурсы текут!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2007, 13:31 |
|
||
|
Перегруженный конструктор
|
|||
|---|---|---|---|
|
#18+
blinded пишет: > MasterZiv ты чему детей учишь? Не дай бог класс будет наследником С трудом представляю детей, программирующих на С++. Так что уж пусть сами думают о последствиях. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2007, 22:49 |
|
||
|
Перегруженный конструктор
|
|||
|---|---|---|---|
|
#18+
MasterZiv ты чему детей учишь? Не дай бог класс будет наследником кого-то и по второму разу пойдет инициализация папы, он ведь потом и не сообразит где ресурсы текут!!! да мало того, не дай бог неперехваченное исключение внутри вызываемого конструктора.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 10:55 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34383544&tid=2029289]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
180ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 248ms |
| total: | 548ms |

| 0 / 0 |
