класс — объявление переменных классов C ++ и последовательность их использования?

Я новичок в программировании, и в настоящее время я изучаю C ++. Я сталкивался с этим в уроках, которые я использую. Мой вопрос: как можно использовать переменную name в функциях getName и setName еще до того, как она будет объявлена, что происходит позже в private? Разве C ++ не является последовательным языком сверху вниз?введите описание изображения здесь

0

Решение

Это работает, потому что компилятор C ++ умный и изначально загружает все объявление класса (вместе с любыми определениями, которые у него могут быть) «разделяет» членов класса, создает внутренние структуры о классе и его содержимом, а на более позднем этапе класс методы компилируются, когда вся структура класса уже известна. Например, это также, как методы и переменные родительского класса доступны … без полного знания класса и всей его иерархии это не будет работать.

Поскольку вы только начинаете изучать C ++, я не буду утомлять вас внутренними компонентами компилятора, однако хорошая книга на эту тему https://en.wikipedia.org/wiki/Compilers:_Principles,_Techniques,_and_Tools или «Современная реализация компилятора в C» (https://www.cs.princeton.edu/~appel/modern/c/)

3

Другие решения

Других решений пока нет …