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

Перегрузка operator->() - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Упорядочить массив целых положительных чисел по возрастанию, определить номер минимального простого числа http://www.cyberforum.ru/cpp-beginners/thread1143773.html
помогите исправить программу на с++ Упорядочить массив целых положительных чисел по возрастанию, определить но- мер минимального простого числа до и после упорядочивания массива. Создать функции...
C++ Метод итерации для решения слау Ребят помогите исправить код. Уже второй день с ним бьюсь. *#include <iostream> #include <math.h> using namespace std; void iteration(double**a,double *b,double *x,int n) { int i,j; ... http://www.cyberforum.ru/cpp-beginners/thread1143769.html
C++ Найти количество четных цифр заданного натурального числа
Привет, всем))помогите пожалуйста написать код для задачи: найти количество четных цифр заданного натурального числа. вот мой код,но он не работает,помогите переделать)) #include<iostream>...
Динамические строки C++
Как сделать этот код динамическим? #include <cstddef> #include <iostream> #include <string> int main() { const std::size_t size = 3; std::string array;
C++ Необходимо вывести строку prime, если число простое, или composite, если число составное http://www.cyberforum.ru/cpp-beginners/thread1143749.html
Уважаемые программисты, проверьте, пожалуйста, решение задачи Проверьте, является ли число простым. Вводится одно число n. Формат выходных данных Необходимо вывести строку prime, если число...
C++ Функции: Как передать в качестве параметра число? Как передать в качестве параметра число? с++ подробнее

Показать сообщение отдельно
DrOffset
7316 / 4416 / 1000
Регистрация: 30.01.2014
Сообщений: 7,253
09.04.2014, 20:08
Цитата Сообщение от BESSON_off Посмотреть сообщение
Непонятно...
Ну правила такие в языке. Вот из стандарта С++:
13.3.1.2/8
The second operand of operator -> is ignored in selecting an operator-> function, and is not an argument
when the operator-> function is called. When operator-> returns, the operator -> is applied to the value
returned, with the original second operand.
130
И сноска:
130) If the value returned by the operator-> function has class type, this may result in selecting and calling another operator-> function. The process repeats until an operator-> function returns a value of non-class type.
И вот 13.5.6/1
operator-> shall be a non-static member function taking no parameters. It implements the class member
access syntax that uses ->.
postfix-expression -> templateopt id-expression
postfix-expression -> pseudo-destructor-name

An expression x->m is interpreted as (x.operator->())->m for a class object x of type T if T::operator->()
exists and if the operator is selected as the best match function by the overload resolution mechanism (13.3).
То есть operator-> по правилам языка должен возвращать нечто, к чему применима операция ->. Это либо указатель, либо другой класс с переопределенным operator->.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru