Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The const keyword specifies that a variable's value is constant and tells the compiler to prevent the programmer from modifying it.
const int i = 5;
i = 10; // Error
i++; // Error
In C++, you can use the const keyword instead of the #define preprocessor directive to define constant values. Values defined with const are subject to type checking, and can be used in place of constant expressions. In C++, you can specify the size of an array with a const variable as follows:
const int maxarray = 255;
char store_char[maxarray]; // Legal in C++; illegal in C
In C, constant values default to external linkage, so they can appear only in source files. In C++, constant values default to internal linkage, which allows them to appear in header files.
The const keyword can also be used in pointer declarations.
char *const aptr = mybuf; // Constant pointer
*aptr = 'a'; // Legal
aptr = yourbuf; // Error
A pointer to a variable declared as const can be assigned only to a pointer that is also declared as const.
const char *bptr = mybuf; // Pointer to constant data
*bptr = 'a'; // Error
bptr = yourbuf; // Legal
You can use pointers to constant data as function parameters to prevent the function from modifying a parameter passed through a pointer.
You can call constant member functions only for a constant object. This ensures that the object is never modified.
birthday.getMonth(); // Okay
birthday.setMonth( 4 ); // Error
You can call either constant or nonconstant member functions for a nonconstant object. You can also overload a member function using the const keyword; this allows a different version of the function to be called for constant and nonconstant objects.
You cannot declare constructors or destructors with the const keyword.
See Also Constant Member Functions