Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
nut888 Гость
|
Добавлено: Пн Дек 16 2002 13:19 Заголовок сообщения: C++ Приведение типов |
|
|
Как нужно дополнить класс
class test { int i; double d; };
чтобы стал возможным такой код
f_i(int i); f_d(double d);
test a;
f_i(a); // f_i(a.i); f_d(a); // f_d(a.d);
или хотя бы так
f_i((int)a); |
|
Вернуться к началу |
|
|
Adil Гость
|
Добавлено: Пн Дек 16 2002 14:42 Заголовок сообщения: Re: C++ Приведение типов |
|
|
class test { public: int i; double d; operator int() { return i; } operator double() { return d; } };
test a; f_i(a); f_d(a); |
|
Вернуться к началу |
|
|
nut888 Гость
|
Добавлено: Пн Дек 16 2002 16:21 Заголовок сообщения: Re: C++ Приведение типов |
|
|
Спасибо работает А такой вариант к сожалению нет Есть ли какие нибудь варианты решения
class test {
typedef int i1_t; typedef int i2_t;
public: int i1, i2; operator i1_t() { return i1; } operator i2_t() { return i2; }
}; |
|
Вернуться к началу |
|
|
Adil Гость
|
Добавлено: Вт Дек 17 2002 10:12 Заголовок сообщения: Re: C++ Приведение типов |
|
|
Боюсь, что нет... |
|
Вернуться к началу |
|
|
Chea Гость
|
Добавлено: Вт Дек 17 2002 23:58 Заголовок сообщения: А если так? |
|
|
typedef int i1_t; typedef int i2_t;
class test { public: int i1, i2; operator i1_t() { return i1; } operator i2_t() { return i2; }
}; |
|
Вернуться к началу |
|
|
nut888 Гость
|
Добавлено: Чт Дек 19 2002 09:12 Заголовок сообщения: Re: А если так? |
|
|
Так тоже не получится Это тоже самое так как это синонимы типов Я в конце концов сделал два класса причем один наследовал другой и в каждом определил эту функцию В общем когда возникают подобные вещи это в большей степени вопрос по правильно организации данных а не по программированию |
|
Вернуться к началу |
|
|
Chief Гость
|
Добавлено: Вс Дек 22 2002 16:24 Заголовок сообщения: Re: C++ Приведение типов |
|
|
Слушай, а может тебе не мучаться с приведениями типов %), а написать просто:
class test { public: int get_i1() {return i1;} int get_i2() {return i2;} private: int i1,i2; };
Да применять эти функции для взятия нужных тебе мемберов. |
|
Вернуться к началу |
|
|
|