Как понять такой код в C ++ [request-> headers (). Method () -> value (). GetStringView ())] - PullRequest
0 голосов
/ 18 июня 2020

Я предполагаю уменьшить его до [request->headers().getMethodValue())].

Я новичок в C ++. Может кто-нибудь подскажет, как понимать этот тип кода? Есть несколько операторов . и ->. Я теряю слежение за классами и прочим.

Это немного подавляет.

Ответы [ 3 ]

0 голосов
/ 18 июня 2020

Оператор . используется для доступа к содержимому внутри объекта (функциям, переменным и т. Д. c.) Оператор -> - это просто оператор ., но для указателей. В вашем случае вы вызываете функцию request headers, которая возвращает объект. Для этого объекта вы вызываете функцию getMethodValue.

0 голосов
/ 18 июня 2020

Ответы уже объяснены, зачем нужны операторы . и ->;

пример:

class Test
{
    public:
      print( int i) { std::cout << i << std::endl; }
};

для доступа к объекту указателя

Test* tPtr;

tPtr->print() // prints i;

для доступа к объекту;

Test tObj;

tObj.print() // print i;
0 голосов
/ 18 июня 2020

На самом деле, эти типы кодов распространены в языках, поддерживающих объектно-ориентированное программирование.

Наиболее вероятная причина в том, что при правильном сочетании с иерархией классов и наследованием одна строка сокращает количество операторов if-else к лаконичному синтаксису, как вы упомянули. Я предлагаю вам изучить стили объектно-ориентированного программирования, особенно полиморфизм, чтобы понять этот вид кода.

...