RAD Studio |  |

const
See Also
Collapse All

Category

Modifiers

Syntax

Copy Code

    const <variable name> [ = <value> ];
    <function name> ( const <type>*<variable name> ;)
    <function name> const;

Description

Use the const modifier to make a variable value unmodifiable.

Use the const modifier to assign an initial value to a variable that cannot be changed by the program. Any future assignments to a const result in a compiler error.

A const pointer cannot be modified, though the object to which it points can be changed. Consider the following examples.

Copy Code

    const float pi   = 3.14;

    // When used by itself, const is equivalent to int.
    const  maxint  = 12345;

    // A constant pointer
    char *const str1 = "Hello, world";

    // A pointer to a constant character string.
    char const *str2 = "CodeGear Corporation";

Given these declarations, the following statements are illegal.

Copy Code

    pi   = 3.0;         // Assigns a value to a const.
    i     = maxint++;   // Increments a const.
    str1 = "Hi, there!" // Points str1 to something else.

Using the const Keyword in C++ Programs

C++ extends const to include classes and member functions. In a C++ class definition, use the const modifier following a member function declaration. The member function is prevented from modifying any data in the class.

A class object defined with the const keyword attempts to use only member functions that are also defined with const. If you call a member function that is not defined as const, the compiler issues a warning that a non-const function is being called for a const object. Using the const keyword in this manner is a safety feature of C++.

Warning: A pointer can indirectly modify a const variable, as in the following:

Copy Code

    *(int *)&my_age = 35;

If you use the const modifier with a pointer parameter in a function's parameter list, the function cannot modify the variable that the pointer points to. For example,

Copy Code

    int printf (const char *format, ...);

printf is prevented from modifying the format string.

See Also

mutable

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!