没有可调用C++的匹配函数

No Matching function to call C++

本文关键字:函数 C++ 调用      更新时间:2023-10-16

我有两个类TreeManager和TreeProducerBase。我在将TTree的对象(这是一个用于生成树的类)从TreeManager构造函数传递到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
}