Я новичок в программировании, и в настоящее время я изучаю C ++. Я сталкивался с этим в уроках, которые я использую. Мой вопрос: как можно использовать переменную name в функциях getName и setName еще до того, как она будет объявлена, что происходит позже в private? Разве C ++ не является последовательным языком сверху вниз?введите описание изображения здесь
Это работает, потому что компилятор C ++ умный и изначально загружает все объявление класса (вместе с любыми определениями, которые у него могут быть) «разделяет» членов класса, создает внутренние структуры о классе и его содержимом, а на более позднем этапе класс методы компилируются, когда вся структура класса уже известна. Например, это также, как методы и переменные родительского класса доступны … без полного знания класса и всей его иерархии это не будет работать.
Поскольку вы только начинаете изучать C ++, я не буду утомлять вас внутренними компонентами компилятора, однако хорошая книга на эту тему https://en.wikipedia.org/wiki/Compilers:_Principles,_Techniques,_and_Tools или «Современная реализация компилятора в C» (https://www.cs.princeton.edu/~appel/modern/c/)
Других решений пока нет …