Здравствуйте, Andrew001, Вы писали:
Кё>>Нет, ты сначала говоришь, что хочешь получить, а затем тебе скажут, как это лучше сделать. Иначе окажешься в положении прапорщика "да что тут думать, прыгать надо!"
A>Ха
A>Может мне кинуть на сайт весь проект
A>У меня есть вопрос его и задаю
A>Помоему этого достаточно
A>Поправь меня если я не прав
Ты абстрагируешь свою проблему и излагаешь её. Потому что наилучший путь может оказаться совсем другим.
Здравствуйте, 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
Здравствуйте, Andrew001, Вы писали:
A>>>Требуется найти адрес класса C находясь в теле процедуры d
CZX>>static_cast<C*>(this);
A>Но это ведь самое обычное преобразование типов
A>Разве не проще написать вот так:
A>(C*)this;
Это — преобразование типа в стиле C (explicit type conversion, 5.4). Оно оставлено в C++ для обратной совместимости с C и выполняет одно из преобразований
const_cast<C*>(this), static_cast<C*>(this), const_cast<C*>(static_cast<const C*>(this)), reinterpret_cast<C*>(this) или const_cast<C*>(reinterpret_cast<const C*>(this)),
в зависимости от обстоятельств. В C++ считается хорошим тоном явно писать, какой из этих вариантов ты имеешь в виду.
Здравствуйте, <Аноним>, Вы писали:
А>Здравствуйте, 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>>