Я новичок в программировании, но летом прошел стажировку, и я пытаюсь запустить этот код.Указатели: Что означает эта строка кода?
Я прохожу через код другого C++ («Точный геодезический для треугольных сеток» с открытым исходным кодом), и одна строка отключает меня. Во всяком случае, линия выглядит следующим образом:
geodesic::Mesh* mesh = algorithms[algorithm_id]->mesh();
Поправьте меня, если я ошибаюсь, но первый указатель инициализируется. Похоже, что
class::pointerclass* thingpointedto = something[something] accessing member mesh();
У меня нет понятия, что означает код в правой части равенства. Может кто-нибудь мне помочь?
У вас есть опечатка? Указатель на оператор-член '->' ** не может иметь пробел. – Bathsheba
'algorithmms' - это массив/вектор/карта (или какой-либо другой тип с перегруженным оператором []'). Он, очевидно, возвращает указатель на что-то с членом 'mesh()', который возвращает другой указатель. –
'algorithm' - это массив алгоритмов. 'algorithm_id' - это индекс (число алгоритмов по всем предоставленным), поэтому вы получаете сначала данный алгоритм. Как только вы получите один алгоритм (будьте осторожны, это всего лишь указатель на алгоритм), вы просто вызываете его метод 'mesh()', который отправляет вам адрес некоторой вычислительной структуры «Geodesic :: Mesh». –