Инициализатор конструктора

Прежде всего, для людей, которые хотят проголосовать за это, обратите внимание, что переменные-члены не были показаны в ссылке на класс, и ссылка на файл заголовка была повреждена!

У меня есть следующий конструктор:

    Foam::IOobject::IOobject
143 (
144  const word& name,
145  const fileName& instance,
146  const objectRegistry& registry,
147  readOption ro,
148  writeOption wo,
149  bool registerObject
150 )
151 :
152  name_(name),
153  headerClassName_(typeName),
154  note_(),
155  instance_(instance),
156  local_(),
157  db_(registry),
158  rOpt_(ro),
159  wOpt_(wo),
160  registerObject_(registerObject),
161  objState_(GOOD)
162 {
163  if (objectRegistry::debug)
164  {
165  Info<< "Constructing IOobject called " << name_
166  << " of type " << headerClassName_
167  << endl;
168  }
169 }

Насколько я прочитал, инициализатор используется для:

  • Вызывать конструкторы базового класса из производного класса
  • Инициализируйте переменные-члены класса

Увидеть: https://stackoverflow.com/questions/2445330/importance-of-a-singlecolon-in-c

Я просто не могу понять, для чего предназначены элементы инициализатора конструкторов примеров, поскольку они не являются переменными-членами класса IOobject и не являются конструкторами производных классов. Может кто-нибудь сказать мне, для чего эти элементы инициализатора?

привет стрейт

-4

Решение

По вашей ссылке, если вы перейдете к файлу заголовка, он покажет элементы, поэтому ясно, что в базовом классе нет базового класса, и список инициализаторов в конструкторе инициализирует только элементы.

127  //- Name
128  word name_;
129
130  //- Class name read from header
131  word headerClassName_;
132
133  //- Optional note
134  string note_;
135
136  //- Instance path component
137  fileName instance_;
138
139  //- Local path component
140  fileName local_;
141
142  //- objectRegistry reference
143  const objectRegistry& db_;
144
145  //- Read option
146  readOption rOpt_;
147
148  //- Write option
149  writeOption wOpt_;
150
151  //- Register object created from this IOobject with registry if true
152  bool registerObject_;
153
154  //- IOobject state
155  objectState objState_;
2

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

класс IOobject имеет следующие определенные члены (файл заголовка):

127  //- Name
128  word name_;
129
130  //- Class name read from header
131  word headerClassName_;
132
133  //- Optional note
134  string note_;
135
136  //- Instance path component
137  fileName instance_;
138
139  //- Local path component
140  fileName local_;
141
142  //- objectRegistry reference
143  const objectRegistry& db_;
144
145  //- Read option
146  readOption rOpt_;
147
148  //- Write option
149  writeOption wOpt_;
150
151  //- Register object created from this IOobject with registry if true
152  bool registerObject_;
153
154  //- IOobject state
155  objectState objState_;

Взгляните на заголовочный файл здесь: http://foam.sourceforge.net/docs/cpp/a06519_source.html

и вот подпись конструктора

IOobject
(
const word &        name,
const word &        instance,
const fileName &        local,
const objectRegistry &      registry,
readOption          r = NO_READ,
writeOption         w = NO_WRITE,
bool            registerObject = true
)

и есть доступная документация Вот

Дайте мне знать, если вам нужно больше подробностей, я постараюсь найти для вас больше.

2

По вопросам рекламы [email protected]