加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 无法将对象分配给volatile对象

发布时间:2020-12-16 06:04:20 所属栏目:百科 来源:网络整理
导读:我想将一个对象分配给相同类型的volatile对象,但是没有使用编译器错误.如何改变程序呢?除了让它工作,为什么我不能直接做? 我在这里使用Visual Studio 2010作为编译器. class A{public:};int _tmain(){ A a; volatile A va; va = a; // compiler error:C267
我想将一个对象分配给相同类型的volatile对象,但是没有使用编译器错误.如何改变程序呢?除了让它工作,为什么我不能直接做?

我在这里使用Visual Studio 2010作为编译器.

class A
{
public:
};

int _tmain()
{
    A a;
    volatile A va;
    va = a;        // compiler error:C2678 here
    return 0;
}

解决方法

您需要使用volatile限定符定义A的赋值运算符函数.
class A
{
    public:

    volatile A& operator = (const A& a) volatile
    {
      // assignment implementation
    }
};

如果您没有为类定义赋值运算符,C将创建A& operator =(const A&);但是它不会使用volatile限定符创建一个默认赋值运算符,因此您需要明确定义它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读