如何修复“ this->为nullptr”

时间:2019-05-10 11:04:39

标签: c++

我在执行简单的动态内存分配时遇到了一些问题,可能对其进行了简单的修复,但是我一直想弄清楚它已经存在了一段时间,但没有发现任何东西。我收到“ this-> layers was nullptr”,我知道layers [0]是nullptr,但是在定义它时出现错误。我在名为map的类中定义所有这些内容,并在main.cpp

中调用该类

注意:我正在使用一个名为tinxml2的库和一个名为sfml的库,但是我真的认为问题不必对它们做任何事情,因此我没有将它们放在标签中

Layer.h

#pragma once
#include <iostream>
#include <SFML\Graphics.hpp>
#include "tinyxml2.h"
class Layer : sf::RenderTexture
{
public:
    Layer(tinyxml2::XMLElement* layer);
    const char* GetID() { return layer->Attribute("id"); }
    ~Layer();



private:
    tinyxml2::XMLElement* layer;
};

Layer.cpp

#include "Layer.h"

Layer::Layer(tinyxml2::XMLElement* layer)
{
    this->layer = layer;
}
Layer::~Layer()
{
}

我在map.h中将图层定义为Layer** layers 并在map.cpp中

layers[0] = new Layer(pMap->FirstChildElement("layer"));
std::cout << layers[0]->GetID() << std::endl;

重要的是要说我确定可以成功创建对象,因为如果我尝试不创建任何元素就可以正常使用它。

0 个答案:

没有答案