繁体   English   中英

如何将指针复制到不完整的类型-C ++

[英]How to copy a pointer to incomplete type - C++

我正在尝试将指针myTexture的内容复制到指针texture (一个类成员)中,如下面的代码所示:

Sprite::Sprite(SDL_Renderer *renderer, SDL_Texture *myTexture) {

    // Initialize texture
    this->texture = myTexture;
}

但是,我不仅需要texturemyTexture指向同一对象,因为我希望能够修改texture而不影响myTexture 我尝试使用复制构造函数,但编译器表示不允许使用不完整的类型。 我不确定如何在不指向同一对象的情况下创建该对象的副本。

在此先感谢您的帮助。

您不能调用复制构造函数,或者通常不能访问任何不完整类型的成员。 毕竟,这就是不完整的原因。 您不应该知道该类型甚至支持复制或其他任何功能。

我想说的只是包括整个类型,而不是仅仅向前声明它,然后完成它。


编辑:我可能还要补充一点,我们在这里谈论SDL纹理类型。 这种类型看起来甚至不支持复制。 例如,它具有“上一个”和“下一个”指针,以及一个似乎指向渲染器对象的指针。 几乎不是价值类。

看起来您应该在这里重新考虑整个设计,真正的问题不是关于不完整的类型,而是“如何复制SDL_Texture内容”。

我想我找到了解决方案。 它并没有完全复制指针,但是我所做的是,因为我使用的是SDL2,所以我将渲染目标更改为this->texture ,然后使用SDL_RenderCopy()将原始纹理放在新纹理上。 不幸的是,这是我找到的最简单的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM