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

Что означает такое обьявление функции? - C++

Восстановить пароль Регистрация
 
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
16.10.2013, 00:05     Что означает такое обьявление функции? #1
C++
1
SimpleCat &TheFunction()
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xSCJx
22 / 19 / 1
Регистрация: 24.12.2012
Сообщений: 433
16.10.2013, 00:08     Что означает такое обьявление функции? #2
функция возвращяет ссылку на SimpleCat.
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6159 / 2888 / 282
Регистрация: 04.12.2011
Сообщений: 7,686
Записей в блоге: 3
16.10.2013, 04:52     Что означает такое обьявление функции? #3
Еще раз о котах:
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream> // для объекта cout
#include <string> 
 using namespace std;
  class SimpleCat
 {
string cat_name;
public:
SimpleCat (string cat_name_= "Romuald"); // конструктор
SimpleCat(const SimpleCat&); // конструктор-копировщик
 ~SimpleCat(); // деструктор
 //определите оператор << это кстати пример возврата ссылки, но другого класса
friend ostream& operator << (ostream& os, SimpleCat cat){//возврат ссылки  на поток позволяет писать
//cout<<a<<b<<c<<d;
cout<<"The cat "<<cat.cat_name<<" that once had cought a fat rat!"<<endl;
return os;
 }
SimpleCat& foo(){//это метод шутка. Обычно ссылку можно вернуть и через формальный параметр
    //а явный возврат ссылки позволяет функцию использовать как возвращаемое значение слева
    //от операции присваивания
return *this;//
 }
//а опрератор присваивания возвращает ссылку своего типа
SimpleCat &SimpleCat::operator =(const char *cat_name_){
//позволяет писать a=b=c=d;
//лучше конечно присваивание определять для опрерандов одного типа,
//иначе больше подходит конструктор преобразования)
if(cat_name_==0) return *this;
cat_name = cat_name_;
return *this;
}
 };
 
 SimpleCat::SimpleCat(string cat_name_)
 {
cat_name=cat_name_;
cout << "Simple Cat Constructor... "<<cat_name<<endl;
 }
 
 SimpleCat::SimpleCat(const SimpleCat& cat)
 {
     if(this != &cat){
cat_name=cat.cat_name;
cout << "Simple Cat Copy Constructor...\n";
     }
 }
 SimpleCat::~SimpleCat()
 {
cout << "Simple Cat Destructor...\n";
 }
  enum The_Rat{fat, rat};
 int main()
 {
cout << "main()SimpleCat Frisky;\n";
SimpleCat Frisky;     // Вызываем конструктор раз.
cout<<Frisky<<endl;
Frisky.foo()="Frisky";//так делать не нужно. На то сть оператор присваивания (без него, кстати
//и это не сработает. Или конструктор преобразования.
cout<<Frisky<<endl;
cout<<endl;
system("pause  ");
return fat;
 }
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
16.10.2013, 11:27  [ТС]     Что означает такое обьявление функции? #4
СПАСИБО!!!
Yandex
Объявления
16.10.2013, 11:27     Что означает такое обьявление функции?
Ответ Создать тему
Опции темы

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