[SC]SystemC dont_initialize的应用场景详解(一)
SystemC dont_initialize的应用场景详解(一)
摘要:在 C++ 中,构造函数定义里紧跟在参数列表后面的 “: …” 就是 成员初始化列表(member initializer list)。它的作用是:
- 在进入构造函数体
{ … }
之前,按照列表顺序调用各个成员或基类的构造函数; - 对于
const
或引用成员、没有默认构造函数的成员对象,必须通过这种方式初始化。
- 举例说明:
struct Counter : sc_module {Counter(const char* name) : sc_module(name) { /*…*/ }
};struct Testbench : sc_module {Counter cnt; // 成员SC_CTOR(Testbench) // macro 展开为 Testbench(const sc_module_name& name): cnt("counter") // ← 这里的 “:” 就是初始化列表{// 构造函数体,在 cnt 已经用 "counter" 调用了它的构造函数}
};
- 这儿的
: cnt("counter")
表示:进入Testbench
构造函数体之前,先用"counter"
调用cnt
的构