|
Страници по тази тема: 1 | 2 | 3 | 4 | (покажи всички)
Тема
|
бах го в с++а (vc6)
|
|
Автор |
~!@$%^amp;*()_+ (целия горен ред) |
Публикувано | 19.10.05 03:27 |
|
имам си значи некъф protected конструктор с некъф смотан параметър,
обаче това не ме предпазва от викането на default copy constructor, още повече че такъв не може да се създаде посмъртно автоматично, защото имам мембъри които са reference и съответно нема как да ги инициализира. default constructor-a не може да се извика, както се и очакваше.
не знам дали е така по стандарт, ама япончетата веднага се нахендриха на него .
Редактирано от ~!@$%^amp;*()_+ на 19.10.05 03:30.
| |
Тема
|
Re: бах го в с++а (vc6)
[re: ~!@$%^amp;*()_+]
|
|
Автор | Winnetou (Нерегистриран) |
Публикувано | 19.10.05 09:25 |
|
Сериозно ли? :)) Аз лично, бих се върнал да препрочета пак стандарта (то сигурно ще се намерят хора да ми го препоръчат в клуба :) ).
Виж следния код (успешно работи с гцц 3.4):
struct Foo
{
/*static*/ int bar[5];
};
//int Foo::bar[5] = {0};
struct copyProblem {
copyProblem(Foo& f) : m_rFoo(f), i(0) { printf("User defined constructor\n"); };
void prinfRef() const { printf("%x\n",m_rFoo); };
int i;
Foo& m_rFoo;
};
int main()
{
Foo tmpFoo;
copyProblem a(tmpFoo);
a.prinfRef();
copyProblem b(a);
b.prinfRef();
};
Съвсем успешно си инициализира референцията (уау :) ).
| |
Тема
|
Re: бах го в с++а (vc6)
[re: ~!@$%^amp;*()_+]
|
|
Автор | z-order (Нерегистриран) |
Публикувано | 19.10.05 12:30 |
|
amp, ти нещо питаш ли или просто споделяш? ако питаш, дай малко по-ясно.
| |
|
Ако това ще те успокои, за компенсация на неявния копи-конструктор имаш и неявен оператор за присвояване. Фичър на езика е. Затова винаги ги декларирай в private секцията докато не ти се наложи да ги ползваш - ще си спрестиш много главоболия.
System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
| |
Тема
|
Re: бах го в с++а (vc6)
[re: Colombino]
|
|
Автор |
ти (Rainmaker) |
Публикувано | 19.10.05 17:04 |
|
и == май също си има default оператор.
| |
Тема
|
Re: бах го в с++а (vc6)
[re: ти]
|
|
Автор |
Colombino (работен) |
Публикувано | 19.10.05 17:16 |
|
Няма такова нещо. Или съм в голяма грешка, не ми се проверява сега.
Вингаги съм се чудел защо в C има побитово копиране на структури, а няма сравнение. По-късно осъзнах, че е лесно да метнеш една памет върху друга, но за сравнението дупките от подравняването са фатални.
System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
| |
|
написал съм, че се вика конструктор по подразбиране, т.е. аз не съм дефинирал копи конструктор, с какво ще се инициализира тогава?
| |
|
за неявното присвояване ясно, това което ме човърка е защо какъв да е конструктор, скрива конструктора по подразбиране, а не скрива копи конструктора.
някак си като недоодялано с теслата стои.
| |
|
споделям, къде видя въпрос?
| |
Тема
|
Re: чукча писател
[re: ~!@$%^amp;*()_+]
|
|
Автор | Winnetou (Нерегистриран) |
Публикувано | 19.10.05 17:39 |
|
Къде е КОПИ-КОНСТРУКТУРА в посочения пример???? Инициализира ли се референса - инициализира се.....
Ноо- чукча, верно е писател...
| |
|
Страници по тази тема: 1 | 2 | 3 | 4 | (покажи всички)
|
|
|