Прежде всего, для людей, которые хотят проголосовать за это, обратите внимание, что переменные-члены не были показаны в ссылке на класс, и ссылка на файл заголовка была повреждена!
У меня есть следующий конструктор:
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
и не являются конструкторами производных классов. Может кто-нибудь сказать мне, для чего эти элементы инициализатора?
привет стрейт
По вашей ссылке, если вы перейдете к файлу заголовка, он покажет элементы, поэтому ясно, что в базовом классе нет базового класса, и список инициализаторов в конструкторе инициализирует только элементы.
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_;
класс 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
)
и есть доступная документация Вот
Дайте мне знать, если вам нужно больше подробностей, я постараюсь найти для вас больше.