【问题标题】:No Matching function to call C++没有调用 C++ 的匹配函数
【发布时间】:2016-11-23 11:22:38
【问题描述】:

我有 2 个类 TreeManager 和 TreeProducerBase。我在将 TTree 的对象(这是一个用于制作树的类)从 TreeManagerconstructor 传递给 TreeProducerBase 中的函数时遇到错误。 注意:我已将树定义为

TTree *tree_

函数调用:

tpb.initialize(&tree_); 

这里,tpb 是 TreeproducerBase 类的一个对象。

这是被调用的函数。

void initialize(TTree &tree_)

显示错误如下:

error: no matching function for call to 'TreeProducerBase::initialize(TTree*&)'

我哪里做错了?

【问题讨论】:

  • 为什么这个标签是python
  • 请向我们展示您的代码的相关部分
  • 发布代码(或其简化版本)。我们无法为您提供帮助。

标签: c++ function pointers reference call


【解决方案1】:

您正在尝试将指向 TTree 的指针传递给需要引用 TTree 的函数。尝试像这样重新声明它

void initialize(TTree* &tree_);

调用看起来像

tpb.initialize(tree_);

然后你可以通过简单的赋值来初始化外部指针:

void initialize(TTree* &tree_) {
    tree_ = new TTree(); // or smth else
}

【讨论】:

    猜你喜欢
    • 2021-09-21
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    相关资源
    最近更新 更多