所以我的头文件看起来像这样:

class DerivedClass : public BaseClass{
public:
    const std::string IMG_FILE_NAME = "picture.png";
};

我的cpp文件看起来像这样:
#include "DerivedClass.h"

DerivedClass::DerivedClass(int x, int y) : BaseClass(x, y, IMG_FILE_NAME){
    //some code here.
}

在基类中,我使用字符串(IMG_FILE_NAME)打开文件,但由于某种原因它在那里为null,这会破坏程序。有人可以解释发生了什么吗?

最佳答案

基类将在派生类之前构造。因此,在发送到IMG_FILE_NAME构造函数之前,不会在DerivedClass中实例化BaseClass

一个可能的解决方法是使IMG_FILE_NAME静态。应该在调用构造函数之前对其进行初始化。

关于c++ - 在派生类的头文件中声明的字符串在父类(super class)中为null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33790511/

10-09 02:34