Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The latest version of this topic can be found at Compiler Warning (level 4) C4626.
derived class' : assignment operator was implicitly defined as deleted because a base class assignment operator is inaccessible or deleted
An assignment operator was deleted or not accessible in a base class and was therefore not generated for a derived class. Any attempt to assign objects of this type will cause a compiler error.
This warning is off by default. See Compiler Warnings That Are Off by Default for more information.
The following sample generates C4626 and shows how to fix it:
// C4626
// compile with: /W4
#pragma warning(default : 4626)
class B
{
// public:
B& operator = (const B&)
{
return *this;
}
};
class D : public B
{
}; // C4626 - to fix, make B's copy constructor public
int main()
{
D m;
D n;
// m = n; // this line will cause an error
}