【发布时间】:2025-12-30 02:35:11
【问题描述】:
首先,对于那些想投反对票的人,请注意成员变量未显示在类引用中,并且指向头文件的链接已损坏!
我有以下构造函数:
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://*.com/questions/2445330/importance-of-a-singlecolon-in-c
我只是无法弄清楚示例构造函数初始化程序中的元素是什么,因为它们不是IOobject 类的成员变量,也不是派生类的构造函数。谁能告诉我这些初始化元素是干什么用的?
恭喜
【问题讨论】:
-
你确定这些不是类的成员变量吗?你只贴了构造函数的实现,可以添加类的定义(从它的头文件中)吗?
-
如果没有数据成员或基类,代码将无法编译。
-
看起来
name_可能是一个成员变量,在这种情况下,如果有基类,则默认初始化。 -
@Luecking:很好的评论,注意类引用中没有显示成员变量,并且到头文件的链接被破坏了!
标签: c++ methods constructor initializer