Edit

Share via


Compiler Warning (level 4) C4626

'derived class' : assignment operator was implicitly defined as deleted because a base class assignment operator is inaccessible or deleted

Remarks

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.

Example

The following example 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
}