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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Почти полное бинарное дерево http://www.cyberforum.ru/cpp-beginners/thread1160359.html
Здравствуйте! Подскажите пожалуйста, как сделать так, чтобы функция проходилась к примеру по всей левой части дерева. Я сделал функцию проверки дерева на то, является ли оно почти полным, но при входе в левое поддерево, функция проверяет только левых потомком. То есть к примеру, если у правого узла есть потомки, то функция их не проверяет! bool left(TNode *&root, int &cnt2){ cnt2++; if...
C++ В диагоналях, параллельных главной, найти максимальные элементы #include<iostream.h> #include<conio.h> #include<iomanip.h> int main() { int sum,sump,m,i,j,n,k,pr,y; bool x; cout<<"Danna kvadratichnaya matrica. Razmernost' = 2"<<endl; n=2; int**a=new int*; http://www.cyberforum.ru/cpp-beginners/thread1160350.html
Бинарное дерево, исправить ошибки в коде C++
в общем, есть такой вот код. компилится, ошибок нет. а запускаться - не запускается( подскажите, в чём проблема? #include "stdafx.h" #include "iostream" #include <locale.h> #include <fstream> using namespace std; struct Node //структура дерева {
Отладчик VS показывает разные значения C++
При отладке постоянно встречаюсь с такой фигнёй: до входа в какую-либо процедуру отладчик показывает одно значение переменной, а после - другое. Но тогда они отличались на несколько тысячных. Сейчас он вообще офигел! Мало того, что умножает числа на ~1000, дык ещё и равные числа делает неравными!!:wall: Либо я туплю, либо отладчик в говно погрешный.:help:
C++ Проверить наличие объекта класса http://www.cyberforum.ru/cpp-beginners/thread1160319.html
Есть класс. Можно ли как-то узнать, есть ли уже созданный объект этого класса? Как?
C++ Определить объединение из двух полей. Первое поле - массив из четырех байт, второе - двойное слово Определить объединение из двух полей. Первое поле - массив из четырех байт, второе - двойное слово. Ввести случайное число в диапазоне от 20 до 50. Округлить его до ближайшего целого, кратного 6. Переставить байты таким образом, чтобы на месте 1-го байта был 4, на 2-ом месте был 1-ый, на 3-ем был 2-ой, на 4-ом был 3 байт. Вывести число в шестнадцатеричном виде до перестановки и после нее. подробнее

Показать сообщение отдельно
lulusa
0 / 0 / 0
Регистрация: 04.10.2013
Сообщений: 11
28.04.2014, 20:46  [ТС]     Перегрузка оператора ->
zss, о, как раз по той теме, что мне сказали написать ("умный" указатель). Однако мне не понятно, как оно работает. Вот например, если я для класса X перегружу оператор+, то при вызове запись A + B равносильна A.operator+ (B).
Здесь же, оператор -> не имеет аргумента. Запись
C++
1
spxObj->GetX(); // spxObj.(operator->) GetX (); // </*какой-то указатель*/>  GetX ();
мне не очень понятна, получается, что в какой-то момент у нас есть несвязное выражение указатель-метод. Как компилятор понимает, что здесь надо перейти по этому самому указателю, а затем использовать оператор доступа (т.е. точку) к методу GetX (); Мы же вроде явно это нигде не прописываем!
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru