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

C++

Войти
Регистрация
Восстановить пароль
 
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
#1

Прототипы - C++

19.03.2010, 06:11. Просмотров 518. Ответов 6
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class A
{
 ...
 public:
  type operator = (...); // Какой здесь type? A или A &?
  type operator + (...); //  Какой здесь type? A или A &?
  type operator - (...); //  Какой здесь type? A или A &?
  type operator * (...); //  Какой здесь type? A или A &?
  type operator / (...); //  Какой здесь type? A или A &?
  type operator += (...); //  Какой здесь type? void, A или A &?
  type operator -= (...); //  Какой здесь type? void, A или A &?
  type operator *= (...); //  Какой здесь type? void, A или A &?
  type operator /= (...); //  Какой здесь type? void, A или A &?
};
Написать нечто компилируемое я могу. Меня интересует, как принято делать прототипы.
1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2010, 06:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Прототипы (C++):

Прототипы свойств TPrinter - C++ Builder
Я изучаю класс TPrinter и не могу разобраться в прототипах свойств, например, прототипы свойств Aborted, Canvas и Orientation...

Передать прототипы в функцию - Visual C++
Здравствуйте! Мне нужно в функции OpenDll объявлять указатель на функцию, вызываемую из библиотеки. Библиотеки разные, функции разные,...

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

Прототипы функций - C++ WinAPI
Все API функции имеют вид вроде "HANDLE WINAPI LoadImage(...". Объясните пож., что значит HANDLE WINAPI ? функция возвращает сразу 2...

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
mrhard
8 / 8 / 0
Регистрация: 10.11.2009
Сообщений: 36
19.03.2010, 07:02 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class A
{
 ...
 public:
  A& operator = (const A&); 
  A& operator + (const A&, const A&); 
  A& operator - (const A&, const A&); 
  A& operator * (const A&, const A&); 
  A& operator / (const A&, const A&); 
  A& operator += (const A&); 
  A& operator -= (const A&); 
  A& operator *= (const A&); 
  A& operator /= (const A&); 
};
1
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.03.2010, 08:55  [ТС] #3
Все возвращают ссылку на тип? А я делал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class A
{
 ...
 public:
  A operator = (...);
  A operator + (...);
  A operator - (...);
  A operator * (...);
  A operator / (...);
  void operator += (...);
  void operator -= (...);
  void operator *= (...);
  void operator /= (...);
};
.
0
ISergey
Maniac
Эксперт С++
1374 / 885 / 52
Регистрация: 02.01.2009
Сообщений: 2,658
Записей в блоге: 1
19.03.2010, 09:04 #4
так нужно..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class A
{
 ...
 public:
  A& operator = (const A&); 
  A operator + (const A&, const A&); 
  A operator - (const A&, const A&); 
  A operator * (const A&, const A&); 
  A operator / (const A&, const A&); 
  A& operator += (const A&); 
  A& operator -= (const A&); 
  A& operator *= (const A&); 
  A& operator /= (const A&); 
};
0
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.03.2010, 09:13  [ТС] #5
Цитата Сообщение от ISergey Посмотреть сообщение
5 ... (const &A); [/CPP] &A
Это я знаю. А ты мне лучше скажи, почему нельзя
C++
1
2
3
4
5
6
7
TDirectory
{
 ....
 public:
 TDirrecgtory & operator (const TString &A);
 ....
};
? И умножать можно не только на свой тип.
C++
1
2
3
4
5
6
7
8
9
10
TLenght
{
 ...
 public:
 TLenght & operator * (const double &y);
 TLenght & operator / (const double &y);
 TLenght & operator *= (const double &y);
 TLenght & operator /= (const double &y);
 ...
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
TMatrix
{
 ...
 public:
 TMatrix & operator * (const double &y);
 TMatrix & operator / (const double &y);
 TMatrix & operator *= (const double &y);
 TMatrix & operator /= (const double &y);
 TMatrix & operator * (const TVector &y);
 TMatrix & operator / (const TVector &y);
 TMatrix & operator *= (const TVector &y);
 TMatrix & operator /= (const TVector &y);
 ...
}
.
C++
1
2
3
4
5
6
7
class TString
{
 ...
 public:
 TString & operator += (char c);
 ...
};
Почему я так не могу написать?
0
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
19.03.2010, 21:32 #6
можно и так сылку на типа надо возвращать, чтобы можно было делать так:
C++
1
2
3
A A1,A2,A3,A4;
A1+A2+A2+A4+... //A1.operator+(A2.operator+(A3.operator+(A4.operator+(...))))
//без создания лишних обьектов. как при возвращении самого обькета
а все что ниже тоже можно, почему нет...
0
taras atavin
Ушёл с форума.
3569 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
23.03.2010, 11:05  [ТС] #7
а в операторах
C++
1
==
,
C++
1
!=
,
C++
1
>
,
C++
1
>=
,
C++
1
<
,
C++
1
<=
что принято возвращать? bool, или ссылку на bool?

Добавлено через 3 минуты
Цитата Сообщение от Aye Aye Посмотреть сообщение
A A1,A2,A3,A4; A1+A2+A2+A4+... //A1.operator+(A2.operator+(A3.operator+(A4.operator+(...)))) //без создания лишних обьектов. как при возвращении самого обькета
Это коммент к типу возвращаемого значения? Или это про пост № 5 (там имелось ввиду, что тип параметра мне и так известен)?
Цитата Сообщение от Aye Aye Посмотреть сообщение
а все что ниже тоже можно, почему нет...
А это ответ на
Цитата Сообщение от taras atavin Посмотреть сообщение
Почему я так не могу написать?
?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2010, 11:05
Привет! Вот еще темы с ответами:

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

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

Правильные прототипы операторов - C++
Подскажите правильные прототипы: operator =, operator +, operator +=, operator -, operator -=. operator *, operator *=, operator /,...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.03.2010, 11:05
Ответ Создать тему
Опции темы

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