[英]How To Initialize a Variable to Previously Allocated Memory?
我正在使用C ++,并正在创建一个ex_stage
类(如果有任何区别,请使用SystemC模块)。 在该类的头文件中,我定义:
public:
ReorderBuffer ROB;
我还定义了ReorderBuffer
是另一个类,它具有自己的构造函数。 我已经将ROB
定义为ex_stage
类的全局变量,以便可以从ex_stage
多个函数访问它。
但是,我无法在运行时之前初始化ROB
,因为它的某些功能取决于用户提供的值。 因此,即使我将ROB
定义为全局变量,也无法在定义的位置对其进行初始化。
通常,我会这样做:
ReorderBuffer ROB(<incoming variables>);
在ex_stage
的构造函数中以同时构造ROB
。 但是,由于我已经定义了ROB
,因此我不确定是否能够做到这一点而不会引起问题。
执行这样的操作是否会实际上影响其原始范围内的ROB
,还是会创建一个范围为ex_stage
的构造函数本地的新ROB
?
PS-很抱歉,如果这很难理解,请告诉我是否需要更多信息。
如果您知道如何在运行ex_stage
构造函数时初始化ROB
,则可能会发现成员初始化程序很有用。
成员初始化程序允许类成员以特定的方式进行初始化,而不是仅将其默认构造函数称为:
class ex_stage {
public:
ex_stage() : ROB(<stuff>) {} // constructor that takes <stuff> will be called
ReorderBuffer ROB; // default constructor will _not_ be called
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.