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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Упорядочить массив целых положительных чисел по возрастанию, определить номер минимального простого числа http://www.cyberforum.ru/cpp-beginners/thread1143773.html
помогите исправить программу на с++ Упорядочить массив целых положительных чисел по возрастанию, определить но- мер минимального простого числа до и после упорядочивания массива. Создать функции для сортировки массива и определения простого числа. #include <iostream> #include <time.h>
C++ Метод итерации для решения слау Ребят помогите исправить код. Уже второй день с ним бьюсь. *#include <iostream> #include <math.h> using namespace std; void iteration(double**a,double *b,double *x,int n) { int i,j; //double norma; double *xn=new double ; http://www.cyberforum.ru/cpp-beginners/thread1143769.html
C++ Найти количество четных цифр заданного натурального числа
Привет, всем))помогите пожалуйста написать код для задачи: найти количество четных цифр заданного натурального числа. вот мой код,но он не работает,помогите переделать)) #include<iostream> #include<windows.h> using namespace std; int main() { SetConsoleCP(1251);
Динамические строки 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, если число простое, или composite, если число составное. #include <iostream> #include <cmath> using namespace std; int function(int a){
C++ Функции: Как передать в качестве параметра число? Как передать в качестве параметра число? с++ подробнее

Показать сообщение отдельно
DrOffset
6840 / 4051 / 924
Регистрация: 30.01.2014
Сообщений: 6,855
09.04.2014, 20:08     Перегрузка operator->()
Цитата Сообщение от 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->.
 
Текущее время: 16:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru