【发布时间】:2014-07-30 18:29:30
【问题描述】:
我正在尝试将指针myTexture的内容复制到指针texture(类成员)中,如下代码所示:
Sprite::Sprite(SDL_Renderer *renderer, SDL_Texture *myTexture) {
// Initialize texture
this->texture = myTexture;
}
但是,我需要让texture 不仅仅指向与myTexture 相同的对象,因为我希望能够修改texture 而不会影响myTexture。我试过使用复制构造函数,但编译器说不允许不完整的类型。我不太确定如何在不指向同一个对象的情况下创建该对象的副本。
提前感谢您的帮助。
【问题讨论】:
-
你试过
this->texture = new SDL_Texture(*myTexture);还是不行? -
@MattPhillips 是的:
incomplete type is not allowed。我不太了解如何绕过不完整的类型。 -
包含
SDL_Texture的定义有问题吗?你为什么要避免它? -
@MattPhillips:当类型不完整时,您将无法访问任何成员,包括构造函数。据你所知,一个可访问的构造函数甚至可能不存在。
-
@RSahu 这是一个库的一部分,所以我很确定我不能这样做,但我可能错了。
标签: c++ pointers deep-copy sdl-2 incomplete-type