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限定符创建一个默认赋值运算符,因此您需要明确定义它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |