Article ID: 92614 - View products that this article applies to.
This article was previously published under Q92614
The sample source code below demonstrates how to initialize a const member of a class. Note that the code uses a member initialization list because a const member may not appear on the left side of the assignment operator. The value must be set when the object is constructed because the value of a const member can be set only at initialization.
If an application attempts to initialize a const member with the assignment operator, the compiler generates the following error messages:
Using Visual C++ 32-bit Edition, version 4.0, this error is reported as:
error C2758: 'a' : must be initialized in constructor base/member initializer list
error C2166: lvalue specifies const object
The member initialization list is the preferred method to initialize the members of a class. For example, when initializing an object of a user- defined type, it is more efficient to use a member initialization list to initialize a data member than to perform an assignment in the constructor. The latter approach requires two calls: one to construct the data member and another to the operator=() function to assign a value to the member.
error C2166: l-value specifies const object
First = 0 Second = 5
Article ID: 92614 - Last Review: December 11, 2003 - Revision: 2.0
Contact us for more help
Connect with Answer Desk for expert help.