如何解决原子成员变量
我们应该将私有成员变量 trackerCoordinates 声明为原子变量。 .h 最初是这样写的:
class Missile : public Attack,public Sea::Coordinates {
private:
bool hit = false;
Sea::FCoordinates trackerCoordinates;
我试过像这样使用 std::atomic :
class Missile : public Attack,public Sea::Coordinates {
private:
bool hit = false;
std::atomic<Sea::FCoordinates> trackerCoordinates;
现在,在随附的 .cpp 文件的第 3 行中,出现了一个新错误,可通过撤消 std::atomic 声明来解决。
Missile::Missile(Coordinates const & coordinates)
: Coordinates(coordinates),trackerCoordinates(-1.f,-1.f) -- this line
{
}
错误说:
没有用于初始化 'std::atomicSea::FCoordinates'(又名 'atomic
我不知道为什么会发生该错误以及如何解决它。
更多信息:FCoordinates 是 TCoordinates 的 typedef,应该是
创建作为参数给出的坐标,如 (x,y)
,并且 TCoordinates 构造函数是 noexcept 声明的。
在此先感谢您的帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。