我有一个用于在 OpenGL 中加载和渲染对象的类。为了加载对象,我有一个名为 LoadFile(std::string FilePath) 的函数,它工作得很好,但现在我还想从构造函数加载一个文件,所以我尝试这样做:
CObject(std::string FilePath)
{
CObject(); // set all values to 0
LoadFile(FilePath);
}
但是每当我尝试渲染时,这样做都会使我的应用程序崩溃,我真的不知道为什么 :s。
最佳答案
嗯,CObject();
不会将所有值设置为 0,而是创建一个临时对象。应该是:
CObject(std::string FilePath)
{
//manually set fields to 0
LoadFile(FilePath);
}
如果您的默认构造函数也再次调用自身,则很可能是堆栈溢出错误。
关于C++构造函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10338972/