Форум программистов, компьютерный форум CyberForum.ru

Перегрузка операторов в Visual C++ - C++

Восстановить пароль Регистрация
 
Atmaks
3 / 3 / 0
Регистрация: 18.12.2011
Сообщений: 10
18.12.2011, 07:28     Перегрузка операторов в Visual C++ #1
Здравствуйте. Среда - Microsoft Visual Studio 2010 Professional. Есть класс Matrix, задающий матрицу. Требуется перегрузить операторы + и * с тем, чтобы соответственно складывать и перемножать матрицы. Пишу в объявлении класса:
C++
1
2
(*Matrix) operator +(Matrix *Q);
(*Matrix) operator *(Matrix *Q);
Возвращает указатели на свежесозданные с помощью оператора new матрицы. Но когда жму F5, выводится:
  • Ошибка 1 error C2143: синтаксическая ошибка: отсутствие ";" перед "+" (в строке 1)
  • Ошибка 2 error C2461: Matrix1::Matrix: отсутствие в синтаксисе конструктора формальных параметров (в той же строке)
  • Ошибка 3 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию (в той же строке)

и аналогичные сообщения для следующей строки. Вроде как всё делаю по книжке.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2011, 07:28     Перегрузка операторов в Visual C++
Посмотрите здесь:

Перегрузка операторов C++
Перегрузка операторов C++
Перегрузка операторов C++
Перегрузка операторов C++
C++ Перегрузка операторов
Перегрузка операторов C++
Перегрузка операторов! C++
Перегрузка операторов C++
C++ Перегрузка операторов + и =
Перегрузка операторов C++
C++ Перегрузка операторов +=, -=, *= и /=
C++ Перегрузка операторов >>

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4248 / 2780 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
18.12.2011, 08:23     Перегрузка операторов в Visual C++ #2
Правильно писать так:
C++
1
Matrix* operator +(Matrix *Q);
ну а если совсем правильно, то думаю ты будешь вызывать эти операторы для объектов, а не для указателей, поэтому так
C++
1
Matrix operator +(const Matrix& Q);
Atmaks
3 / 3 / 0
Регистрация: 18.12.2011
Сообщений: 10
18.12.2011, 15:28  [ТС]     Перегрузка операторов в Visual C++ #3
И правда заработало. Ошибка была в неправильном описании возвращаемого типа? И еще, если я буду возвращать объект, но у меня не перегружен оператор присваивания, работать ведь не будет? И почему мы принимаем константную ссылку в качестве аргумента?
Yandex
Объявления
18.12.2011, 15:28     Перегрузка операторов в Visual C++
Ответ Создать тему
Опции темы

Текущее время: 05:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru