Страница 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)
}
Скажите, пожалуйста, как ошибку исправить? Я так понимаю, это из-за сложения указателей? Или нет?

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