没有匹配函数来调用 C++

No Matching function to call C++

我有 2 个 classes TreeManager 和 TreeProducerBase。我在从 TreeManagerconstructor 将 TTree 对象(这是一个 class 来制作树)传递给 TreeProducerBase 中的函数时出错。 注意:我将树定义为

TTree *tree_

函数调用:

tpb.initialize(&tree_); 

这里tpb是TreeproducerBase的一个对象class。

这是正在调用的函数。

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
}