Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
ALX2 Гость
|
Добавлено: Вс Фев 08 2004 12:36 Заголовок сообщения: Перегрузка операции + в C++ |
|
|
Народ, HELP!
Есть класс:
Код: |
class HyperLong
{
public:
HL();
~HL();
void operator= (sBT x); /**/
void operator= (BT x);
void operator= (HL x);
HL operator+ (HL &x);
protected:
void Destr();
char Sign;
#define FON FrameOfNumber
struct FrameOfNumber
{
BT byte;
FON *Up;
}*Frame;
};
|
Перегружаю операцию + в виде
Код: |
HL HL::operator+(HL a)
{
HL rez;
// вычисления
return rez;
}
|
Внутри вычисления идут правильно а если использовать
c=a+b
в с получается полная лажа.
Все остальные операции перегруженны и работают правельно. |
|
Вернуться к началу |
|
 |
Ersh
Зарегистрирован: 20.01.2004 Сообщения: 107
|
Добавлено: Вс Фев 08 2004 15:23 Заголовок сообщения: |
|
|
напиши точный код протипа и тела функции. А то я смотрю в прототипе ты указываешь адресс, а потом в описании уже нету адресса. _________________ Анархия - мать порядка!!!!!!!!! |
|
Вернуться к началу |
|
 |
HAND Гость
|
Добавлено: Пн Фев 09 2004 16:41 Заголовок сообщения: ссылка |
|
|
Дык перегруженный опреатор + пусть возвращает ссылку на объект. |
|
Вернуться к началу |
|
 |
grayrat
Зарегистрирован: 30.06.2003 Сообщения: 189
|
Добавлено: Вт Фев 10 2004 11:42 Заголовок сообщения: |
|
|
ссылку на rez возвращать можно только если его сделать статическим, иначе по выходу из функции, когда автоматические переменные будут уничтожены, мы получим ссылку в воздух.
описывай + как
Hyperlong operator + ( Hyperlong &a, Hyperlong &b );
в классе его по видимому прийдётся объявить как friend
Посмотри как это сделано в complex.h |
|
Вернуться к началу |
|
 |
|