在系统c程序中工作时,我错过了构造函数之前的public关键字,但是该程序运行良好。 但是在C ++中,它会引发错误
答案 0 :(得分:1)
SystemC要求模块构造函数的第一个参数应为sc_module_name
。除此之外,没有什么特别的。 SystemC宏SC_MODULE
和SC_CTOR
只是为您节省了一些时间,但是您不需要使用它们。
SC_MODULE( dut ) {
SC_CTOR(dut) { }
};
等效于:
struct dut : sc_core::sc_module {
typedef dut SC_CURRENT_USER_MODULE;
dut(::sc_core::sc_module_name) {}
};
请注意,默认情况下struct
个成员是公共的,默认情况下class
个成员是私有的。如果您使用class
而非struct
,则需要通过显式添加public:
使其公开:
class dut : public sc_core::sc_module {
typedef dut SC_CURRENT_USER_MODULE;
public:
dut(::sc_core::sc_module_name) {}
};