Страница 2 из 3

Re: Перегрузка операторов

Добавлено: 25 мар 2008, 10:29
Balbec
Я просто не знаю как правильно включить перегруженный оператор в основную программу. если он правильноперегружен как его задействовать?

Re: Перегрузка операторов

Добавлено: 25 мар 2008, 11:42
airyashov
rect-=10
rect+=10
как обычный оператор только с твоим типом данных

Re: Перегрузка операторов

Добавлено: 31 мар 2008, 06:27
Balbec
Спасибо =) разобрался, но код Enter я не нашел. подскажите? чтобы работало например
int m=bioskey(0);
if (enter) {действие}

Re: Перегрузка операторов

Добавлено: 31 мар 2008, 06:33
Balbec
Спасибо =) разобрался, но код Enter я не нашел. подскажите? чтобы работало например
int m=bioskey(0);
if (enter) {действие}

Re: Перегрузка операторов

Добавлено: 31 мар 2008, 07:01
Balbec
Как можно переделать по другому реагирование на клавиши, чтобы были обычные коды 13, 75, 77 и т.д.

Re: Перегрузка операторов

Добавлено: 31 мар 2008, 08:10
airyashov
Balbec писал(а):Как можно переделать по другому реагирование на клавиши, чтобы были обычные коды 13, 75, 77 и т.д.
что в хелпе непонятно написано?
если младшие 8 бит не 0 значит это ASCII код, если 0, то старшие 8 бит расширенный код ASCII, т.е для расширенных кодов например 13, надо проверить значение 0x0D00,
а для Enter 0x1B00

Re: Перегрузка операторов

Добавлено: 31 мар 2008, 08:51
Balbec
Если у меня для стрелок коды 20480, 19712, 18432, 19200
то для Enter'a и левого Ctrl у меня какой код будет?

Re: Перегрузка операторов

Добавлено: 31 мар 2008, 09:51
airyashov
учитывая что работает через Int 16h
Enter=7181=0x1C0D, а нажатие Ctrl не поймает эта функция

можно в крайнем случае воспользоваться printf("%i",bioskey(0));

Re: Перегрузка операторов

Добавлено: 03 мар 2009, 18:30
Monopo

Код: Выделить всё

class Matrix
{
        protected:
        int count; //размер
        double **mas; //коэффициенты тут
        public:
        Matrix():count(0),mas(NULL){};
        Matrix(const int& n):count(n),mas(NULL){};
        Matrix(const Matrix&){};
        ~Matrix(){};
        Matrix& operator=(const Matrix &T);
        Matrix operator+(Matrix &T); //СЛОЖЕНИЕ МАТРИЦ
};

Matrix Matrix: :o perator+(Matrix &T)
{
        Matrix temp; //РЕЗУЛЬТАТ СЛОЖЕНИЯ
        //..
        return temp;
}
В процессе создаю односвязный список матриц (Структура TMatr: Matrix* item, TMatr* next )

Код: Выделить всё

void main()
{
        TMatr *Head /*голова*/ ,*TP,*P1,*P2;
        // По ходу выполнения P1 и P2 присваиваются
        // определенные TMatr*
        TP->item=(P1->item)+(P2->item); // Ошибка e2085 Invalid pointer addition (C++ Builder 6)
}
Скажите, пожалуйста, как ошибку исправить? Я так понимаю, это из-за сложения указателей? Или нет? :confused:

Re: Перегрузка операторов

Добавлено: 04 мар 2009, 00:51
Romeo
Это из-за того, что разыменовываешь указатели, которые хранят мусор. Под указатели сначала нужно память выделить, а потом уже вызывать ->.