我想将类型作为参数(不是变量或引用)传递。
我有这个工作代码:
执行代码,其中“testState2”是类的名称(即本例中的类型)。请注意,它的基本类型为 state_t:
changeState(new testState2());
改变状态函数:
void state_t::changeState(state_t * new_state)
{
// Check if the state has changed
if (this != new_state)
{
qDebug() << this->name << ": State changed to: " << new_state->name;
delete this;
_state = new_state;
}
else
{
qDebug() << this->name << ": State un-changed";
}
}
在这段代码中,我基本上是在创建一个新的 testState2 实例,但我想进一步简化调用代码。我只想传入类型,如下所示:
changeState(testState2);
注意:没有“新”,这不是创建实例,只是传递类的名称,所以:
- 这甚至可能吗?
- 如果是这样,怎么做?