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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Объекты класса http://www.cyberforum.ru/cpp-beginners/thread775804.html
Приветствую вас) Подскажите пожалуйста какая структура у класса и его объектов в c++bilder К примеру создание класса и 3-х объектов внутри. Мучаюсь уже сутки и не могу понять...а нормальной...
C++ Ошибка с статическими членами класса Доброго времени суток, форумчане! Недавно пришлось вернуться с С# на С++ и я тут же заметил что я все забыл( Итак по сути: Есть определение класса: static class control { public: ... http://www.cyberforum.ru/cpp-beginners/thread775797.html
C++ Найти все простые числа вида n^(n) + 1, меньше за 10^19
Мне надо создать программу. Задание вот такое: Найти все простые числа вида nn + 1, меншье за 1019.
Удалить элемент из односвязного списка C++
Есть односвязный список struct student { char last_name; char name; char date; int exams; double rate; };
C++ Заголовочный фаил <algorithm> (объясните что это такое) http://www.cyberforum.ru/cpp-beginners/thread775764.html
Здравствуйте, товарищи! Что такое #include <algorithm>? Какие она имеет функции или макросы? И если можно их предназначение?
C++ Динамические структуры. Составьте программу, которая создает очередь из произвольного количества элементов Задача 1.Составьте программу, которая создает очередь из произвольного количества элементов. Информационная часть динамического элемента должна состоять из двух целых чисел. Организуйте обработку... подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
31.01.2013, 13:02
Dr.Urban, у оператора -> особая семантика. При его вызове он применяется рекурсивно к результату предыдущего вызова до тех пор, пока не найдёт нужный член в очередном объекте-результате. Пример:
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
63
64
65
66
67
68
69
#include <iostream>
 
struct Value
{
    int value;
};
 
class Foo
{
public:
    int foo;
    
    Foo(int foo):
        m_foo{foo}
    {
    }
    
    Value *operator->()
    {
        return &m_foo;
    }
    
private:
    Value m_foo;
};
 
class Bar
{
public:
    Bar(int bar):
        m_bar(bar)
    {
    }
    
    Foo operator->()
    {
        return m_bar;
    }
    
private:
    Foo m_bar;
};
 
class Moo
{
public:
    Moo(int moo):
        m_moo(moo)
    {
    }
    
    Bar operator->()
    {
        return m_moo;
    }
    
private:
    Bar m_moo;
};
 
int main()
{
    Moo moo(10);
    
    // Пройдём по всей цепочке Moo->Bar->Voo->Value, в котором найдём поле value
    std::cout << moo->value << std::endl;
    
    return 0;
}
http://liveworkspace.org/code/DbtMi$7
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru