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

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

Войти
Регистрация
Восстановить пароль
 
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
#1

Правильные прототипы операторов - C++

27.11.2012, 13:30. Просмотров 268. Ответов 1
Метки нет (Все метки)

Подскажите правильные прототипы: operator =, operator +, operator +=, operator -, operator -=. operator *, operator *=,
operator /, operator /=. Какие типы должны возвращать эти операторы?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//=================================================================================================
class TVector
{
//-------------------------------------------------------------------------------------------------
 public   :
//-------------------------------------------------------------------------------------------------
  double             x;
  double             y;
  double             z;
//-------------------------------------------------------------------------------------------------
                     TVector         (                          );
                     TVector         (TVector          &Original);
//-------------------------------------------------------------------------------------------------
                    ~TVector         (                          );
//-------------------------------------------------------------------------------------------------
  TVector            operator =      (TVector          &Original);
//-------------------------------------------------------------------------------------------------
  TVector            operator +      (TVector          &Right   );
  void               operator +=     (TVector          &Right   );
//-------------------------------------------------------------------------------------------------
  TVector            operator -      (TVector          &Right   );
  void               operator -=     (TVector          &Right   );
//-------------------------------------------------------------------------------------------------
  TVector            operator *      (double           &Right   );
  void               operator *=     (double           &Right   );
//-------------------------------------------------------------------------------------------------
  friend
  TVector            operator *      (double           &Left    ,
                                      TVector          &Right   );
//-------------------------------------------------------------------------------------------------
  TVector            operator /      (double           &Right   );
  void               operator /=     (double           &Right   );
//-------------------------------------------------------------------------------------------------
  friend
  TVector            VectorProduct   (TVector          &Left    ,
                                      TVector          &Right   );
//-------------------------------------------------------------------------------------------------
  friend
  double             ScalarProduct   (TVector          &Left    ,
                                      TVector          &Right   );
//-------------------------------------------------------------------------------------------------
  friend
  double             abs             (TVector          &Vector  );
//-------------------------------------------------------------------------------------------------
};
//=================================================================================================
правильно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2012, 13:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Правильные прототипы операторов (C++):

Прототипы ф-й в *.h файле - C++
у меня была задача.... Написать программу, к-я состоит из 10 ф-й, написать все ф-ии и вызвать их в мейн.... но прототипы функций нада...

прототипы функций - C++
Помогите пожалуйста с написанием программы, т.к. я в принципе составила ее, но при построении выводит ошибку... С помощью прототипа...

Прототипы классов - C++
Здравствуйте, часто в заголовочный файлах вижу запись как бы прототипа класса: //someClass1.h class a; class b; class...

Заголовочные файлы и прототипы - C++
#include <iostream> //#include <cmath> double sqrt(double);

Задача с использованием логических операторов и операторов ветвления - C++
Вот вам задачка, чтоб голову поломать :D Вася работает программистом и получает 50$ за каждые 100 строк кода. За каждое третье...

Определить указатели на функции, имеющие следующие прототипы - C++
float F1(int n,float arr); float *F2(int n,char *st);

1
Toshkarik
1143 / 860 / 51
Регистрация: 03.08.2011
Сообщений: 2,390
Завершенные тесты: 1
27.11.2012, 13:35 #2
Вообще, если делать максимально приближенно к встроенным типам, то должно выглядеть так:
C++
1
2
const TVector operator+( const TVector &Right ) const;
TVector &operator+=( const TVector &Right );
Так же по аналогии с другими.

Но я бы сделал операторы присваивания вот так:
C++
1
const TVector &operator+=( const TVector &Right );
Так как не вижу смысла в записи вида ( A += B ) = C;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2012, 13:35
Привет! Вот еще темы с ответами:

Зачем объявлять прототипы функций? Что даёт прототип? - C++
Зачем объявлять прототипы функций? Можно же описать функцию в начале программы и вызвать в самой проге. Что даёт прототип? Зачем нужна...

Зачем нужно прописывать прототипы отдельно от самой функции?? - C++
Зачем нужно прописывать прототипы отдельно от самой функции?? Мне ответят: что бы компилятор знал что "отдать", и что "получить". Но ведь я...

В чем разница между функциями, прототипы которых имеют вид? - C++
int *fp(int,float); int fp(int *,float);

Прототипы - C++
class A { ... public: type operator = (...); // Какой здесь type? A или A &? type operator + (...); // Какой здесь type? A...


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

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

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