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

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

Войти
Регистрация
Восстановить пароль
 
Marseil
2 / 2 / 0
Регистрация: 29.10.2012
Сообщений: 18
#1

Недопонимание кода - C++

09.01.2014, 03:24. Просмотров 181. Ответов 4
Метки нет (Все метки)

Я разбираю некоторый код С++ (Сразу скажу, что учил с++ самостоятельно, не супер профи) и там есть некоторые строчки, которые я не до конца понимаю. (Код из CryEngine3).

C++
1
const SAccessoryParams accessory=m_sharedparams->accessoryparams[i];
Я не знаю что делает "->"

Благодарю всем кто поможет и по людски объяснит.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2014, 03:24     Недопонимание кода
Посмотрите здесь:

Создание кода программы с нуля!! создание кода C++ C++
C++ перевод кода из С++ в С
C++ Оптимизация кода
C++ Недопонимание указателей
Участок B кода выполняется позже, чем участок A кода, но почему-то B влияет на работоспособность A! Почему? C++
C++ Пояснения кода
C++ Валидность кода
C++ Разборка кода
перевод кода с C# на C++ C++
Недопонимание с switch и выводом default C++
C++ Будоражащее недопонимание цикла
Вынести основную часть кода кода в отдельную функцию C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6227 / 3472 / 424
Регистрация: 29.11.2010
Сообщений: 9,178
09.01.2014, 03:27     Недопонимание кода #2
-> это фактически (* ).
Обращение через . по значению, через -> по указателю.
То есть m_sharedparams является указателем, сначала идет его разыменование и потом обращение к свойству. Если бы он был обычной переменной, то то же самое проделывалось бы через точку.

Добавлено через 34 секунды
Для поиска: обращение по указателю
Marseil
2 / 2 / 0
Регистрация: 29.10.2012
Сообщений: 18
09.01.2014, 03:28  [ТС]     Недопонимание кода #3
Значит если обращаемся к указателю - используем "->", если к переменной "."? Я вас правильно понял?
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6227 / 3472 / 424
Регистрация: 29.11.2010
Сообщений: 9,178
09.01.2014, 03:33     Недопонимание кода #4
не к, а по

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
struct A
{
    int x;
};
 
int main()
{
    A a; // создаем структурную переменную а
    A *b = &a; // создаем указатель на структурную переменную - b, он ссылается на a
    a.x = 2;
    std::cout << a.x  << std::endl; // обращение по значению
    std::cout << b->x << std::endl; // обращение по указателю
}
Добавлено через 1 минуту
По сути последнюю строку можно представить в виде
C++
1
std::cout << (*b).x << std::endl;
просто ввиду частого использования для повышения читаемости и краткости ввели дополнительное обозначение.
Marseil
2 / 2 / 0
Регистрация: 29.10.2012
Сообщений: 18
09.01.2014, 03:35  [ТС]     Недопонимание кода #5
Огромное вам спасибо за объяснение!
Yandex
Объявления
09.01.2014, 03:35     Недопонимание кода
Ответ Создать тему
Опции темы

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