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

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

Войти
Регистрация
Восстановить пароль
 
Vlad708
4 / 4 / 0
Регистрация: 04.11.2012
Сообщений: 72
#1

Перезагруженные функции - C++

23.01.2014, 14:37. Просмотров 211. Ответов 4
Метки нет (Все метки)

Имеется заголовочный файл и в нём объявлен класс MyVector:

C++
1
2
3
4
5
6
7
8
9
10
class MyVector {
  public:
  MyVector(void);
  GetXYZ(float X, float Y, float Z);
  MyVector operator +(MyVector vVector);
  MyVector operator-(const MyVector vVector);
  MyVector operator*(float num);
  MyVector operator /(float num);
  float x,y,z;
};
Вот реализация методов класса:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
MyVector::GetXYZ(float X, float Y, float Z) {
    x = X;
    y = Y;
    z = Z;
} 
MyVector MyVector::MyVector operator +(MyVector vVector) {
    return MyVector(vVector.x + x, vVector.y + y, vVector.z+z);
}
MyVector MyVector::MyVector operator-(const MyVector vVector) {
    return MyVector(x - vVector.x, y - vVector.y, z - vVector.z);
}
MyVector MyVector::MyVector operator*(float num) {
    return MyVector(x * num, y * num, z * num);
}
MyVector MyVector::MyVector operator/(float num) {
    return MyVector(x/num, y/num, z/num);
}
Однако, при компиляции выпадает ошибка: Operator must be declared as function.
И выделяются строчки: MyVector MyVector::MyVector operator +(MyVector vVector) {
Подскажите, что я делаю неверно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2014, 14:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перезагруженные функции (C++):

Функции. Как после одного возвратного значения функции отталкиваться от возврата другой функции - C++
Написал код, в котором 2 функции одна возвращает стринговое значение, вторая должна бы вернуть значение, отталкиваясь от первой. Возможно...

excel. создать таблицу значение кусочно-непрерывной функции y на интервале [xmin; xmax] с шагом h, для расчета функции y используя логические функции - Delphi

Какое значение возвращают функции (в частности, логические функции) по умолчанию в Лазарус? - Lazarus
Я наткнулся на одну неприятность. До сих пор я считал, что result в функциях по умолчанию равен false (если функция логическая) и 0 (если...

вычислить сумму значений функции у и найти минимальное и максимальное значение функции - QBasic
здравствуйте)) помогите, пожалуйста, составить программу:help: найти сумму значений функции от а=4 до в=20 функция...

Вычислить якобиан векторной функции векторного аргумента с помощью стандартной функции - Matlab
Доброго времени суток! пожалуйста помогите!! необходимо вычислить якобиан векторной функции векторного аргумента с помощью стандартной...

Для заданной функции f=Sin(2.8*x^2)+sqrt(1.2*x) вывести на экран значения функции - Turbo Pascal
Для заданной функции f=Sin(2.8*x^2)+sqrt(1.2*x) вывести на экран значения функции,которые лежат в пределах от -1 до 2 и соответствующие им...

4
Extrim88
50 / 50 / 11
Регистрация: 08.02.2013
Сообщений: 189
23.01.2014, 14:41 #2
Цитата Сообщение от Vlad708 Посмотреть сообщение
MyVector::GetXYZ(float X, float Y, float Z) {
x = X;
y = Y;
z = Z;
}
Какой-то конструктор у вас странный. Имя конструктора должно быть идентично имени класса MyVector.
0
Убежденный
Системный программист
Эксперт С++
15685 / 7195 / 1136
Регистрация: 02.05.2013
Сообщений: 11,632
Записей в блоге: 1
Завершенные тесты: 1
23.01.2014, 14:42 #3
Было:
C++
1
MyVector MyVector::MyVector operator +(MyVector vVector) { return MyVector(vVector.x + x, vVector.y + y, vVector.z+z);
Стало:
C++
1
MyVector MyVector::operator +(MyVector vVector) { return MyVector(vVector.x + x, vVector.y + y, vVector.z+z);
Для остальных операторов то же самое.
0
Extrim88
50 / 50 / 11
Регистрация: 08.02.2013
Сообщений: 189
23.01.2014, 14:44 #4
Цитата Сообщение от Vlad708 Посмотреть сообщение
MyVector(void);
Предлагаю конструктор в классе объявить следующим образом:

MyVector(float X= 0.0, float Y = 0.0, float Z = 0.0);
1
Убежденный
Системный программист
Эксперт С++
15685 / 7195 / 1136
Регистрация: 02.05.2013
Сообщений: 11,632
Записей в блоге: 1
Завершенные тесты: 1
23.01.2014, 14:45 #5
Цитата Сообщение от Vlad708 Посмотреть сообщение
Перезагруженные функции
И, кстати, правильно "перегруженные", а не "перезагруженные".
0
23.01.2014, 14:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2014, 14:45
Привет! Вот еще темы с ответами:

Значение функции от пересечения множество в равно пересечению значений функции от множеств - Логика и множества
Аллах велик! Нужно доказать вот эту штуку: \phi \left(\bigcap_{0}^{n}Ai \right) = \bigcap_{0}^{n} \phi \left(Ai \right), i\in \left(0,...n...

Вычислить значение функции e^x=1+x+x^2/2+x^3+3 и сравнить полученной результат c значением стандартной функции - Pascal ABC
Здраствуйте! Пожалуйста укажите услугу в помочи, вот задачка: Оформить у виде программы исчисленнои функции e^x=1+x+x^2/2+x^3+3 и...

Нестандартный вопрос.Как получить доступ к переменным функции из другой функции? - PHP
<?php declare(ticks=1); function tick_handler() { print_r($_GLOBALS);//Печатает все переменные в области видимости кода вне функции...

Для функции y=f(x) получить таблицу значений и график этой функции на отрезке - PascalABC.NET
Для функции y=f(x) получить таблицу значений и график этой функции на отрезке. Количество точек на промежутке задается пользователем. ...


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

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

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