Question:
What is the purpose of placing a const at the beginning and end of a function declaration with a de-reference to the function? Are there memory leak implications?
For example:
const DateTime &dataTime() constwhere:
DateTime is the type of the function dataTime is the function name
Answer:
Consider:
int const i = 10;This declares i to have a type-constant integer, which means that the value of i cannot be modified once it has beeninitialized. Note that this is the same as saying:
const int i = 10;The rule for this is: const modifies type of what is written before it, except when it is the first word in a declaration, in which case it always modifies the type declarator after it.
So, for uniformity, I like to write the former way.
When the const modifier is applied to a member function, the member function shall not change the state ofthe object it called for. For example:
class Foo {public: int bar () const;private: int i;};int Foo::bar () const{ i = 10; // not allowed; const method cannot change state.}