在类中设置指针



我是c++的新手,我用SFML开始了一个项目。我需要一个可以处理精灵的类,所以我需要:

#pragma once
#include <SFML/Graphics.hpp>
#include <iostream>
class Particle
{
private:
sf::Sprite **sprite;
public:
Particle(sf::Sprite* sprite)
{
this->sprite=&sprite;

};
~Particle();
void setPosition(sf::Vector2f newPos)
{
**sprite.setPosition(newPos);
}
};

我想用指针访问某个精灵,并将该精灵设置为类私有变量,但我遇到了一个错误"表达式必须具有类类型,但它具有类型";sf::雪碧**";。sprite变量需要被所有函数访问,所以,我想将它本地设置为这个类。有更好的方法吗?

错误是因为

**sprite.setPosition(newPos);

与相同

**(sprite.setPosition(newPos));

也就是说,您尝试取消引用sprite.setPosition(newPos)返回的

为了解决这个错误(留下我在评论中提到的另一个问题(,您需要取消引用指针变量本身:

(*sprite)->setPosition(newPos);

相关内容

  • 没有找到相关文章

最新更新