Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Atmaks
3 / 3 / 0
Регистрация: 18.12.2011
Сообщений: 10
#1

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

18.12.2011, 07:28. Просмотров 970. Ответов 2
Метки нет (Все метки)

Здравствуйте. Среда - 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 по умолчанию (в той же строке)

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

Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this - C++
Добрый день . Помогите понять принцип работы перегрузки операторов. объясните пожалуйста в зависимости от чего зависит агрумент при...

Перегрузка операторов - C++
Я новичек в С++, столкнулась с перегрузкой операторов. Подскажите пожалуйста в чем принципиальное отличие таких обьявлений: Имя_класса&...

Перегрузка операторов -> <- - C++
Здравствуйте в столь позднее время.. Какова особеность перегрузки операторов -&gt; и . ? Что возвращают ? Если можно ссылки на...

Перегрузка операторов - C++
Помогите пожалуйста разобраться, не могу понять как работает часть этой программы: #include &lt;iostream&gt; using namespace std; class...

Перегрузка операторов - C++
Как правильно перегружать подобные операторы #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; using namespace std; class Point{ public: ...

Перегрузка операторов - C++
Вот задание b) Создать класс Set – множество целых чисел, используя динамическую память. Определить операторы работы с множествами: &quot;+&quot; –...

2
Kastaneda
Jesus loves me
Эксперт С++
4689 / 2893 / 236
Регистрация: 12.12.2009
Сообщений: 7,355
Записей в блоге: 2
Завершенные тесты: 1
18.12.2011, 08:23 #2
Правильно писать так:
C++
1
Matrix* operator +(Matrix *Q);
ну а если совсем правильно, то думаю ты будешь вызывать эти операторы для объектов, а не для указателей, поэтому так
C++
1
Matrix operator +(const Matrix& Q);
1
Atmaks
3 / 3 / 0
Регистрация: 18.12.2011
Сообщений: 10
18.12.2011, 15:28  [ТС] #3
И правда заработало. Ошибка была в неправильном описании возвращаемого типа? И еще, если я буду возвращать объект, но у меня не перегружен оператор присваивания, работать ведь не будет? И почему мы принимаем константную ссылку в качестве аргумента?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2011, 15:28
Привет! Вот еще темы с ответами:

Перегрузка операторов - C++
Необходимо перегрузить следующие операторы: • Присвоение; • Сложение (+; в случае символьных полей сложения понимается как...

Перегрузка операторов - C++
Как написать код перегрузки операторов (+= и --) чтобы выполнялось действие v1+=v2--; v1 и v2 - массив чисел

Перегрузка операторов - C++
Из всего начитанного я понял что, перегрузка операторов — это возможность назначать новый смысл операторам. Мы должны определить класс...

Перегрузка операторов - C++
Есть класс массив, у него есть перегрузка операторов ввода, вывода. Со стандартными типами данных все работает. Но если у меня есть второй...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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