我有2个类TreeManager和TreeProducerBase。我从TreeManagerconstructor将TTree(这是一个用于创建树的类)的对象传递给TreeProducerBase中的函数时遇到错误。
注意:我将树定义为
TTree *tree_
函数调用:
tpb.initialize(&tree_);
在此,tpb是TreeproducerBase类的对象。
这是被调用的函数。
void initialize(TTree &tree_)
它显示错误如下:
error: no matching function for call to 'TreeProducerBase::initialize(TTree*&)'
我在哪里做错了?
最佳答案
您正在尝试将指向TTree的指针传递给期望引用TTree的函数。尝试像这样重新声明
void initialize(TTree* &tree_);
发票看起来像
tpb.initialize(tree_);
然后您可以通过简单的赋值来初始化外部指针:
void initialize(TTree* &tree_) {
tree_ = new TTree(); // or smth else
}
关于c++ - 没有匹配的函数来调用C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38477598/