Что означает это `auto left = & node :: left;` синтаксис?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Что означает это `auto left = & node :: left;` синтаксис?

Сообщение Anonymous »

Код: Выделить всё

#include 

struct Node
{
int value;
Node* left;
Node* right;
Node(int i = 0): value(i), left(nullptr), right(nullptr)
{}
};

auto left = &Node::left;
auto right = &Node::right;

template
Node* Traverse(T np, TP... paths)
{
return (np ->* ... ->* paths);
}

int main()
{

Node* root = new Node{0};
root->left = new Node{1};
root->left->right = new Node{2};

Node* node = Traverse(root, left, right);

std::cout value 
может кто -нибудь объяснить, что это значит в этом примере: < /p>
auto left = &Node::left;
auto right = &Node::right;
Этот root (экземпляр узла класса) имеет новое местоположение в памяти, как слева и right может ссылаться на правильное местоположение внутри root?

Подробнее здесь: https://stackoverflow.com/questions/796 ... yntax-mean
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»