DOCERR: Description of C2354 Error Is UnclearLast reviewed: September 26, 1997Article ID: Q147427 |
The information in this article applies to:
SUMMARYNeither the error message itself nor the online documentation for the C2354 compiler error clearly specify the cause of this error:
'reference' : initialization of reference member requires a temporary variable MORE INFORMATIONIt is illegal to initialize a reference member of a class in the class's constructor with a temporary variable. An attempt to do so generates the C2354 error, as illustrated by this sample code:
int temp() { return 1; }
class Test
{
public:
int member;
int& ref_member;
Test();
};
Test::Test() : ref_member( temp() )
{
}
When this error is encountered, the solution is to change the code so that
the reference member is not initialized to a temporary variable. The
reference must be initialized to an object that will exist for the lifetime
of the reference member.
|
Additional query words: vcbuglist400
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |