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.  |