C++ const keyword
In C++, the keyword const means different things according to its
context.
Variable:
When you add const in front of a variable, it means that variable
is treated like a constant.
You will not be able to change the value of a const variable
once you assign it.
An example of its usage would be:
const float PI = 3.14156;
|
Object
If an object is declared as const, then only the const functions
may be called.
|
Member Function
If const is used with a member function, that means only const
objects can call that function.
For example, suppose you have the following class:
[Foo.H]
class Foo {
public:
void
ChangeValue(int newVal) { m_val = newVal; }
int GetVal() const { return m_val; }
const float PI = 3.14156;
protected:
int m_val;
};
If an instance of foo is declared
as const, you cannot call ChangeValue on it. Correspondingly,
since GetVal is declared const it cannot modify m_val.
|
Parameters
Parameters in a function may be declared const, which means
that those parameters will not be changed during the function
call.
For example, consider the following function:
int multiply(const int a, const int
b) { return a*b; }
Now, does this mean that only constants
can be passed into multiply?
No. Rather, it means that during this function, the parameters
a and b will be treated as constants.
|
Why use const?
Efficiency.
If you use const liberally and correctly there is a chance
the compiler might be able to perform a few optimizations.
Readability: Declaring parameters and/or
functions as const improves program readability.
If you declare a function const, for example, anyone reading
your code will know right away that the function doesn't change
the object on which it is called. In addition, the compiler
will return an error if a const function modifies its object,
or if a const parameter is modified in its function.
|
|