Мне было интересно, существует ли «фиксированный порядок», в котором могут быть сделаны объявления C++? Я рассматриваю декларации в объявлении класса.C++ declare order (const/type/function)
В паскале я бы думать вдоль линий последовательности с использованием-Уст-типа функции:
- с использованием objpas; // целое число
- const c_limit = 5;
- тип t_int_array = массив [0..c_limit] целых чисел;
- function my_func (a_arg0: t_int_array): integer;
Мои объявления класса противоречат некоторым пользователям, потому что я использую приватно-охраняемый общественный порядок. Но в пределах этих разделов можно также зафиксировать порядок деклараций?
Вид вещей, которые я имею в виду, являются:
type declarations (types, enum, class etc)
friend class
friend functions
static member value
static functions
virtual functions
member function
member value
operators
bitfields
constructors
destructors
using clause
(..plus any I may have missed?)
Подоплека в том, что я работаю на графический интерфейс, который позволяет детям перетаскивать элементы (например, виртуальные функции) в списки (например, список виртуальных функций), поэтому для меня важны порядок этих списков.
В настоящий момент нет фиксированного порядка, согласно C++. Но если фиксированный порядок может быть доказан, чтобы работать, то это поможет «управлять» пользователями, чтобы увидеть, какие «списки» доступны, и отбрасывать элементы в них с просмотром min/max.
Одна из областей, в которых я не уверен, - это порядок, в котором объявлены функции и значения членов, потому что я не уверен, может ли член указывать на функцию класса. Я сильнее в pascal, чем C++, и буду благодарен за любые мысли по этому поводу?
Кроме того, я знаю, что некоторые пользователи предпочитают порядок, в котором отображаются элементы, например. потому что они предпочитают сначала просматривать наиболее публичные элементы, но в моем случае это не фактор, потому что графический интерфейс минимизирует разделы таким образом, что я могу сосредоточиться только на «требуемом порядке» объявлений.
Вещи должны быть объявлены до их ссылки. Кроме этого, фиксированного порядка нет. – Barmar
Элементы функции @Barmar inline могут ссылаться на участников, еще не объявленных. –