因此,我正在编写一个类,需要在其中生成一个从均匀分布中采样的随机数。由于我需要经常生成随机数,因此我想在类定义内创建一个对象。
以下是我要完成的工作的示例。 “ example.h”
class ABC
{
public:
ABC();
/* code goes here */
private:
std::mt19937 mt(std::random_device rd;);
std::uniform_int_distribution<int> dist;
}
“ example.cpp”
ABC::ABC():ABC::dist(0,12)
{
/* ABC class constructor */
}
上面的代码无法编译。任何人都可以帮助或指出错误。提前致谢。 g ++编译器会生成以下错误。
src/tsim.cpp: In constructor ‘TrafficSim::TrafficSim(bool, float)’:
src/tsim.cpp:5:71: error: expected class-name before ‘(’ token
TrafficSim::TrafficSim(bool render,float time_period):TrafficSim::dist(0,110)
^
src/tsim.cpp:5:71: error: expected ‘{’ before ‘(’ token
src/tsim.cpp: At global scope:
src/tsim.cpp:5:72: error: expected unqualified-id before numeric constant
TrafficSim::TrafficSim(bool render,float time_period):TrafficSim::dist(0,110)
^
src/tsim.cpp:5:72: error: expected ‘)’ before numeric constant
答案 0 :(得分:0)
您错误地定义了构造函数。
为了定义成员初始化器列表,您需要将其定义为
ABC::ABC() : dist(0, 12)
{
/* ABC class constructor */
}
成员初始化程序列表在函数签名放置后直接起作用 :memberName(构造函数操作数) 如果要初始化多个成员,只需用逗号分隔它们。