Re[7]: Доступ к родительским классам
От: Кодёнок  
Дата: 27.07.05 14:17
Оценка:
Здравствуйте, Andrew001, Вы писали:

Кё>>Нет, ты сначала говоришь, что хочешь получить, а затем тебе скажут, как это лучше сделать. Иначе окажешься в положении прапорщика "да что тут думать, прыгать надо!"

A>Ха
A>Может мне кинуть на сайт весь проект
A>У меня есть вопрос его и задаю
A>Помоему этого достаточно
A>Поправь меня если я не прав

Ты абстрагируешь свою проблему и излагаешь её. Потому что наилучший путь может оказаться совсем другим.
Re[5]: Доступ к родительским классам
От: Аноним  
Дата: 27.07.05 14:30
Оценка:
Здравствуйте, Andrew001, Вы писали:

A>Здравствуйте, CyberZX, Вы писали:


CZX>>Здравствуйте, Andrew001, Вы писали:


A>>>Здравствуйте, Аноним, Вы писали:


А>>>>Здравствуйте, Andrew001, Вы писали:


А>>>>Вот так:


А>>>>
А>>>>d(static_cast<C*>(&a));
А>>>>


A>>>Большое спасибо

A>>>И еще один вопрос на эту тему
A>>>Как решить эту же задачу но если процедура d член класса A
A>>>class A : public B,public C
A>>>{
A>>>...
A>>> void d();
A>>>};

A>>>void A::d()

A>>>{
A>>> ????????;
A>>>}
A>>>Требуется найти адрес класса C находясь в теле процедуры d
CZX>>static_cast<C*>(this);
A>Но это ведь самое обычное преобразование типов
A>Разве не проще написать вот так:
A>(C*)this;
ну вообще-то использывать С-style касты в С++ дурной тон. по многим, дотстаточно объективным причинам. используй лучше static_cast
Re[5]: Доступ к родительским классам
От: Centaur Россия  
Дата: 27.07.05 14:39
Оценка:
Здравствуйте, Andrew001, Вы писали:

A>>>Требуется найти адрес класса C находясь в теле процедуры d

CZX>>static_cast<C*>(this);
A>Но это ведь самое обычное преобразование типов
A>Разве не проще написать вот так:
A>(C*)this;

Это — преобразование типа в стиле C (explicit type conversion, 5.4). Оно оставлено в C++ для обратной совместимости с C и выполняет одно из преобразований в зависимости от обстоятельств. В C++ считается хорошим тоном явно писать, какой из этих вариантов ты имеешь в виду.
Re[6]: Доступ к родительским классам
От: Аноним  
Дата: 27.07.05 14:41
Оценка:
Здравствуйте, Кодёнок, Вы писали:

Кё>Здравствуйте, Andrew001, Вы писали:


Кё>Основная идея наследования — любой объект класса A является объектом класса B и объектом класса C. Везде, где используются типы B или C, можно подставить их наследников.

ну это имеет место быть лишь при public наследовании
Re[6]: Доступ к родительским классам
От: pvgoran Россия  
Дата: 28.07.05 13:51
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Здравствуйте, Andrew001, Вы писали:


CZX>>>static_cast<C*>(this);

A>>Но это ведь самое обычное преобразование типов
A>>Разве не проще написать вот так:
A>>(C*)this;
А>ну вообще-то использывать С-style касты в С++ дурной тон. по многим, дотстаточно объективным причинам. используй лучше static_cast

Еще можно boost::implicit_cast заюзать. Совсем хорошо будет.
... << RSDN@Home 1.1.4 stable rev. 510>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.