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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
rumfelow
0 / 0 / 0
Регистрация: 17.08.2015
Сообщений: 22
#1

Оператор селектор -> - C++

17.08.2015, 11:09. Просмотров 692. Ответов 11
Метки нет (Все метки)

Обьясните, пожалуйста, работу оператора селектор -> Что он делает? Для чего нужен? Как вообще с ним работать. Если можно с примером. Спасибо.
 Комментарий модератора 

Запрещено использовать нецензурные выражения в любом виде, оскорблять других участников форума, умышленно использовать выражения, противоречащие правилам русского языка, в том числе "олбанский" язык.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2015, 11:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Оператор селектор -> (C++):

Селектор - C++
Имеется селектор double size() const { return _n;}Подскажите что значит const?

Условный оператор, оператор ввода/вывода; плоскость и принадлежность точки - C++
Здравствуйте. В С++ я абсолютный новичок, поэтому с первым же заданием возникли определённые трудности. Будьте добры, помогите решить. Буду...

Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1 - C++
В С++ я ноль, помогите пожалуйста написать прогу Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1 ...

Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор * - C++
Помогите в следующем: Для класса шаблона следует перегрузить оператор присваивания, конструктор копирования, бинарный оператор суммы «*»,...

Для чего нужен оператор двоеточие, если два двоеточия - это оператор расширения области видимости - C++
для чего нужен оператор двоеточие ( : ), если два двоеточия( :: ) - это оператор расширения области видимости.

Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры. - C++
Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры. Шаг изменения...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
17.08.2015, 11:18 #2
Доступ к члену класса через указатель на объект класса.
C++
1
2
3
4
5
6
7
struct A
{
   int a;
};
 
A* obj = new A();
obj->a = 1;
hoggy
6535 / 2715 / 469
Регистрация: 15.11.2014
Сообщений: 5,993
Завершенные тесты: 1
17.08.2015, 11:23 #3
Цитата Сообщение от rumfelow Посмотреть сообщение
Что он делает?
как и любой другой оператор он сделает ровно то,
что вы сами для него запрограммируете.

например, он может послать вам рождественскую открытку по почте.

хотя обычно стрелочка - это доступ к ресурсу.

примеры:

C++
1
2
some* p = getSomePtr();
std::cout<< p->data<<std::endl;
C++
1
2
3
4
std::shared_ptr<some> smart 
    = std::make_shared<smart>();
 
std::cout<< smart->data << std::endl;
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
17.08.2015, 11:33 #4
hoggy, Все же не любой.
The following operators cannot be overloaded:
.
.*
::
?:
nor can the preprocessing symbols # and ## (Clause 16).
engine76
2 / 2 / 0
Регистрация: 04.03.2014
Сообщений: 65
17.08.2015, 11:39 #5
Доступ к членам структуры, класса через указатель.
C++
1
2
3
4
5
6
7
8
9
10
11
12
class myClass
{
public:
void printMessage()
{
std::cout << "message" << std::endl;
}
};
myClass* ptr = new myClass;
ptr->printMessage();
 
delete ptr;
Цитата Сообщение от ForEveR Посмотреть сообщение
A* obj = new A();
Может я чего не понимаю, но зачем тут круглые скобки при выделении памяти?
hoggy
6535 / 2715 / 469
Регистрация: 15.11.2014
Сообщений: 5,993
Завершенные тесты: 1
17.08.2015, 11:46 #6
Цитата Сообщение от ForEveR Посмотреть сообщение
Все же не любой.
представленные вами операторы так же делают ровно то,
что для них запрограммировали.

вы лишь никак не можете изменить эту логику.

Добавлено через 1 минуту
Цитата Сообщение от engine76 Посмотреть сообщение
Может я чего не понимаю, но зачем тут круглые скобки при выделении памяти?
ни за чем.

просто так читабельнее - смахивает на вызов конструктора.
Croessmah
Модератор
Эксперт CЭксперт С++
13134 / 7397 / 828
Регистрация: 27.09.2012
Сообщений: 18,231
Записей в блоге: 3
Завершенные тесты: 1
17.08.2015, 12:37 #7
Цитата Сообщение от hoggy Посмотреть сообщение
ни за чем.
Со скобками и без - будут разные способы инициализации.
http://rextester.com/MHHRI22942
DrOffset
7092 / 4233 / 950
Регистрация: 30.01.2014
Сообщений: 7,008
17.08.2015, 12:44 #8
Цитата Сообщение от Croessmah Посмотреть сообщение
будут разные способы инициализации.
Для POD.
Для неPOD в любом сучае (со скобками и без) вызывается конструктор по умолчанию.
John Prick
778 / 711 / 131
Регистрация: 27.07.2012
Сообщений: 2,043
Завершенные тесты: 3
17.08.2015, 12:45 #9
Цитата Сообщение от Croessmah Посмотреть сообщение
Со скобками и без - будут разные способы инициализации.
Интересно, это "стандартная" фича?
DrOffset
7092 / 4233 / 950
Регистрация: 30.01.2014
Сообщений: 7,008
17.08.2015, 12:49 #10
Цитата Сообщение от John Prick Посмотреть сообщение
Интересно, это "стандартная" фича?
Да.
http://en.cppreference.com/w/cpp/lan...initialization
Наш случай - это пункт 4.
Croessmah
Модератор
Эксперт CЭксперт С++
13134 / 7397 / 828
Регистрация: 27.09.2012
Сообщений: 18,231
Записей в блоге: 3
Завершенные тесты: 1
17.08.2015, 12:58 #11
Цитата Сообщение от DrOffset Посмотреть сообщение
Для POD.
Так в примере ForEveR и есть POD тип, в чем проблема то?
hoggy
6535 / 2715 / 469
Регистрация: 15.11.2014
Сообщений: 5,993
Завершенные тесты: 1
17.08.2015, 12:59 #12
Цитата Сообщение от John Prick Посмотреть сообщение
это "стандартная" фича?
ага.

C++
1
2
3
int v; //<--- мусор
 
int v = int(); //<--- явный вызов конструктора пропишет нолик
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2015, 12:59
Привет! Вот еще темы с ответами:

Почему обращение к методам осуществляется через оператор прямого доступа, а не через оператор указателей->? - C++
#include &lt;iostream&gt; using namespace std; class random { public: void Set(int b){a=b;} int Get(){return a;} private: ...

Оператор break как оператор go to next - C++
Подскажите, в этом примере break эквивалентна действию оператора go to next?

Как перегрузить оператор<< и оператор>> ? - C++
Доброго времени суток. Застрял на двух вопросах и не как не могу найти инфу которвя мне помогла бы их решить. вопрос первый. В общем...

В Delphi есть оператор cost i of. и т.д. Есть ли в C++ такой же оператор? - C++
(C++ Builder XE5)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.08.2015, 12:59
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru