小编JLe*_*bbi的帖子

当调用类C++的方法时,类的"this"指向变为null

我知道之前已经问过这个问题,但没有看到我的问题的正确解决方案,我的问题是,当我创建一个类的指针(PAGTexture)时,一切正常然后,该指针作为变量传递给另一个类,在那个新类(PAGRevolutionObject)中,我从PAGTexture调用一个方法,然后抛出一个异常.调试我意识到它实际进入该方法但"this"指针为空"0x00000000".这是我的PAGTexture的cpp:

#include "PAGTexture.h"

PAGTexture::PAGTexture()
{}

PAGTexture::~PAGTexture()
{
}

void PAGTexture::loadTexture(char * path_img, GLuint min_filter, GLuint mag_filter)
{
    int imgWidth, imgHeight;
    unsigned char *image;
    image = SOIL_load_image(path_img,
        &imgWidth,
        &imgHeight,
        0,
        SOIL_LOAD_RGBA);
    if (imgWidth == 0) {
        std::cout << "Failed to load image." << std::endl;
    }
    GLuint id_img;
    glGenTextures(1, &id_img);
    glBindTexture(GL_TEXTURE_2D, id_img);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, min_filter);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag_filter);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, imgWidth, imgHeight,
        0, GL_RGBA, GL_UNSIGNED_BYTE, image);
    glGenerateMipmap(GL_TEXTURE_2D);
    ep = id_img;
    id_imgs.push_back(id_img);
    SOIL_free_image_data(image);
}

void PAGTexture::applyTexture(GLuint …
Run Code Online (Sandbox Code Playgroud)

c++ pointers class this

2
推荐指数
1
解决办法
187
查看次数

标签 统计

c++ ×1

class ×1

pointers ×1

this ×1