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

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

Восстановить пароль Регистрация
 
rumfelow
0 / 0 / 0
Регистрация: 17.08.2015
Сообщений: 22
17.08.2015, 11:09     Оператор селектор -> #1
Обьясните, пожалуйста, работу оператора селектор -> Что он делает? Для чего нужен? Как вообще с ним работать. Если можно с примером. Спасибо.
 Комментарий модератора 

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

C++ оператор do while
Оператор do-while C++
Оператор a % b C++
оператор if C++
C++ Селектор
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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
5229 / 2120 / 404
Регистрация: 15.11.2014
Сообщений: 4,812
Завершенные тесты: 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
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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
5229 / 2120 / 404
Регистрация: 15.11.2014
Сообщений: 4,812
Завершенные тесты: 1
17.08.2015, 11:46     Оператор селектор -> #6
Цитата Сообщение от ForEveR Посмотреть сообщение
Все же не любой.
представленные вами операторы так же делают ровно то,
что для них запрограммировали.

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

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

просто так читабельнее - смахивает на вызов конструктора.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11840 / 6819 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 2
Завершенные тесты: 1
17.08.2015, 12:37     Оператор селектор -> #7
Цитата Сообщение от hoggy Посмотреть сообщение
ни за чем.
Со скобками и без - будут разные способы инициализации.
http://rextester.com/MHHRI22942
DrOffset
6456 / 3830 / 885
Регистрация: 30.01.2014
Сообщений: 6,627
17.08.2015, 12:44     Оператор селектор -> #8
Цитата Сообщение от Croessmah Посмотреть сообщение
будут разные способы инициализации.
Для POD.
Для неPOD в любом сучае (со скобками и без) вызывается конструктор по умолчанию.
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
17.08.2015, 12:45     Оператор селектор -> #9
Цитата Сообщение от Croessmah Посмотреть сообщение
Со скобками и без - будут разные способы инициализации.
Интересно, это "стандартная" фича?
DrOffset
6456 / 3830 / 885
Регистрация: 30.01.2014
Сообщений: 6,627
17.08.2015, 12:49     Оператор селектор -> #10
Цитата Сообщение от John Prick Посмотреть сообщение
Интересно, это "стандартная" фича?
Да.
http://en.cppreference.com/w/cpp/lan...initialization
Наш случай - это пункт 4.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11840 / 6819 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 2
Завершенные тесты: 1
17.08.2015, 12:58     Оператор селектор -> #11
Цитата Сообщение от DrOffset Посмотреть сообщение
Для POD.
Так в примере ForEveR и есть POD тип, в чем проблема то?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2015, 12:59     Оператор селектор ->
Еще ссылки по теме:

Оператор == C++
Оператор while! C++
C++ В Delphi есть оператор cost i of. и т.д. Есть ли в C++ такой же оператор?

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

Или воспользуйтесь поиском по форуму:
hoggy
5229 / 2120 / 404
Регистрация: 15.11.2014
Сообщений: 4,812
Завершенные тесты: 1
17.08.2015, 12:59     Оператор селектор -> #12
Цитата Сообщение от John Prick Посмотреть сообщение
это "стандартная" фича?
ага.

C++
1
2
3
int v; //<--- мусор
 
int v = int(); //<--- явный вызов конструктора пропишет нолик
Yandex
Объявления
17.08.2015, 12:59     Оператор селектор ->
Ответ Создать тему
Опции темы

Текущее время: 21:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru