Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
 |
Ага :))) (update) 12.11.03 14:23 Число просмотров: 1199
Автор: Ktirf <Æ Rusakov> Статус: Elderman Отредактировано 12.11.03 14:25 Количество правок: 1
|
class A
{
// ...
operator char *() const;
};
A::operator char *() const
{
// ...
}
---
Замечу в скобках, что подобных привидений лучше делать поменьше, и вообще их не делать для приведения к типам, которые сам можешь исправить. Ибо приведения, описанные таким образом, выполняются неявно, и при приведениях к указательным типам можно столкнуться с неожиданными побочными эффектами (почему в std::string отказались от operator const char *, заменив его на c_str). Да, условие константности приводимого объекта можно при необходимости опустить, разумеется.
|
<beginners>
|
С++ Как для класса определить преобразование к типу. 12.11.03 13:57
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
Допустим определен класс A
class A{...};
Берем объект
A a;
Преобразовываем, ну скажем, к типу char*
char *cp;
cp = (char *)a;
Как будет выглядеть этот метод преобразования?
Туплю я что-то... наверняка все слишком просто.
|
 |
Ага :))) (update) 12.11.03 14:23
Автор: Ktirf <Æ Rusakov> Статус: Elderman Отредактировано 12.11.03 14:25 Количество правок: 1
|
class A
{
// ...
operator char *() const;
};
A::operator char *() const
{
// ...
}
---
Замечу в скобках, что подобных привидений лучше делать поменьше, и вообще их не делать для приведения к типам, которые сам можешь исправить. Ибо приведения, описанные таким образом, выполняются неявно, и при приведениях к указательным типам можно столкнуться с неожиданными побочными эффектами (почему в std::string отказались от operator const char *, заменив его на c_str). Да, условие константности приводимого объекта можно при необходимости опустить, разумеется.
|
|
|