无法弄清楚如何在C 中调用父构建器

Cannot figure out how to call parent constructor in c++

本文关键字:调用 构建 弄清楚      更新时间:2023-10-16

我正在从继承的类中调用父构建器。

这是我试图调用该函数的方式:

pFile = fopen(filePath.c_str(), "r");
if (pFile == NULL) {
    std::cout << "Error opening file" << std::endl;
}
StatusObj status();
Subclass mcrf_(pFile, status);

这是子类定义

class Subclass : public Superclass {
public:
    Subclass(FILE * f_ptr, StatusObj status) : SuperClass(f_ptr, status) {}
};

超级类的构造函数看起来像这样:

SuperClass( FILE * input, StatusObj & status, uint64_t src_id=0 );

所以在这一点上,我认为我正在做正确的事情,但是当我尝试编译时,我会遇到以下错误:

/main.cpp:152: error: no matching function for call to ‘SubClass(FILE*&, StatusObj (&)())’
/SubClass.h:23: note: candidates are: SubClass(FILE*, StatusObj)

我知道我在某个地方有指针或参考 - 有人可以伸出手并帮助我找到它吗?

谢谢!

(大多数) StatusObj status();的烦恼解析,这是函数声明。

使用

StatusObj status;

StatusObj status{};