所以我的头文件看起来像这样:
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/