I want to assign an object to volatile object in the same type, but failed to do so with compiler error. How to change the program to make it? Besides to make it to work, why i can't do it directly?
I used Visual Studio 2010 as compiler here.
class A
{
public:
};
int _tmain()
{
A a;
volatile A va;
va = a; // compiler error:C2678 here
return 0;
}
You need to define an assignment operator function for A
with the volatile
qualifier.
class A
{
public:
volatile A& operator = (const A& a) volatile
{
// assignment implementation
}
};
If you don't define an assignment operator for a class, C++ will create a default assignment operator of A& operator = (const A&);
. But it won't create a default assignment operator with the volatile
qualifier, so you need to explicitly define it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With