向量基派生 class
vector base derived class
我无法调用所有注册时钟的订阅者的否定,所有订阅者也来自ClkIf
class ClkAdapter : public ClkIf
{
virtual void negedge()
{
for(std::list<ClkIf*>::iterator it = clk_list.begin(); it != clk_list.end(); it++)
(it->negedge)();
}
virtual void posedge()
{ clk_cnt++; }
void registerForClock(ClkIf* module)
{ clk_list.push_back(module); }
std::list<ClkIf*> clk_list;
unsigned long long clk_cnt;
};
错误:请求成员 'negedge' in '* it.std::_List_iterator<_Tp>::operator-> with _Tp = ClkIf*',这是非class 输入 'ClkIf*'
negedge 函数出错,这段代码有什么问题??
您有一个指针列表,因此列表迭代器的工作方式类似于双指针(即ClkIf**
)。因此,您必须在循环内调用 (*it)->negedge()
。 (*it)
首先获取当前 ClkIf*
元素,然后 -> 运算符调用 that 值上的函数。
我无法调用所有注册时钟的订阅者的否定,所有订阅者也来自ClkIf
class ClkAdapter : public ClkIf
{
virtual void negedge()
{
for(std::list<ClkIf*>::iterator it = clk_list.begin(); it != clk_list.end(); it++)
(it->negedge)();
}
virtual void posedge()
{ clk_cnt++; }
void registerForClock(ClkIf* module)
{ clk_list.push_back(module); }
std::list<ClkIf*> clk_list;
unsigned long long clk_cnt;
};
错误:请求成员 'negedge' in '* it.std::_List_iterator<_Tp>::operator-> with _Tp = ClkIf*',这是非class 输入 'ClkIf*' negedge 函数出错,这段代码有什么问题??
您有一个指针列表,因此列表迭代器的工作方式类似于双指针(即ClkIf**
)。因此,您必须在循环内调用 (*it)->negedge()
。 (*it)
首先获取当前 ClkIf*
元素,然后 -> 运算符调用 that 值上的函数。