Часть Circle {p, r} должна быть о создании базового объекта
Правильно.
, который не похож на то, что вы положили всписок инициализации
Независимо от того, на что это похоже, список инициализаторов членов - место для инициализации базового подобъекта.Несмотря на то, что член в своем названии.Технически, список инициализатора субобъекта будет более точным именем.
Означает ли это, что вы можете поместить любые выражения в список инициализации?
Нет;Неясно, как вы в конечном итоге с таким выводом.Грамматика списка инициализатора элемента следующая:
ctor-initializer:
: mem-initializer-list
mem-initializer-list:
mem-initializer ... opt
mem-initializer-list , mem-initializer ... opt
mem-initializer:
mem-initializer-id ( expression-list opt )
mem-initializer-id braced-init-list
mem-initializer-id:
class-or-decltype
identifier
В случае mem-initializer-id
, равного class-or-decltype
, mem-initializer
- для базы, а в случае identifier
- для члена.
В списке выражений вы также не можете помещать произвольные выражения.Грамматика:
expression-list:
initializer-list
initializer-list:
initializer-clause ... opt
initializer-list , initializer-clause ... opt
initializer-clause:
assignment-expression
braced-init-list
braced-init-list:
{ initializer-list , opt }
{ designated-initializer-list , opt }
{ }