首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法访问私有成员-原子

无法访问私有成员-原子
EN

Stack Overflow用户
提问于 2014-03-03 14:00:24
回答 2查看 888关注 0票数 0

我有这样的代码:

代码语言:javascript
复制
class Animator{
public:


private:
    bool                _running;
    atomic<bool>            _waiting;

};

Visual说Error 2 error C2248: 'std::atomic<bool>::operator =' : cannot access private member declared in class 'std::atomic<bool>' d:\programmierung\uncertainty\uncertainty\uncertainty\animator.h 113

我看不出这个类和只有原子作为成员的最小类之间的区别,这是可行的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-03 14:08:29

最有可能的是,您的最小测试类的赋值运算符根本没有被使用,因此没有实例化。如果要显式调用其赋值运算符,则应该会看到相同的错误。原子不支持分配给另一个std::原子。

票数 2
EN

Stack Overflow用户

发布于 2014-03-03 14:21:53

您错过了实例变量的初始化:

代码语言:javascript
复制
#include <atomic>

class Animator
{
public:
    Animator();
private:
    bool _running;
    std::atomic<bool> _waiting;
};

Animator::Animator() : _running(false), _waiting(false) {
}

std::atomic没有赋值运算符,但如果使用默认构造函数而不使用默认值,则将使用此运算符。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22148717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档