The information in this article applies to:
SYMPTOMSWhen building an application that contains a base class with a pure virtual operator= function and a class derived from the base class with a defined operator= function, a following link error is generated for the base class's operator=: This also occurs if the classes reside in a DLL and are declared with the __declspec( dllexport ) storage-class attribute. CAUSEThis behavior is by design. The assignment operator is not inherited. Normal inheritance rules do not apply, and declaring it pure virtual does not have the usual affect. RESOLUTIONSince operator= is not inherited, any declaration of operator= in the base class is unused and unnecessary. Do not declare the operator= in the base class. MORE INFORMATIONWhen built, the following code sample will generate the discussed LNK2001 error. Comment the declaration of the operator=() member in the base class to resolve. Sample Code
Additional query words: 9.00 9.10
Keywords : kbCompiler kbCPPonly kbVC100 kbVC200 kbVC210 kbVC400 kbVC500 kbVC600 |
Last Reviewed: July 15, 1999 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |