Article ID: 104650
Article Last Modified on 7/5/2005
...if the class declares a user-defined operator=() that takes an argument of type "reference to class-name", no default assignment operator is generated.
/* Compile Options needed: None
*/
#include <iostream.h>
char* message1 = "Derived::operator=() called";
char* message2 = "Default assignment used";
class Base
{
public:
char* OperatorCalled;
Base() { OperatorCalled = message2; }
};
class Derived : public Base
{
public:
void operator=(const Base&) { OperatorCalled = message1; }
Derived() {}
};
void main()
{
Derived first, second;
first = second;
cout << first.OperatorCalled;
}
Additional query words: 8.00 8.00c 9.00 9.10
Keywords: kbinfo kbcpponly kbcompiler KB104650