The Keyword const

Declaring an entity to be const tells the compiler to make it "read-only." const can be applied usefully in a large number of programming situations, as we will soon see.

Because it cannot be assigned to, a const object must be properly initialized. For example:

const int x = 33;
const int v[] = {3, 6, x, 2 * x};

Working with the declarations above:

++x ; // error
v[2] = 44; // error

Compilers can take advantage of an object being read-only in various ways. For integers and some simple types, no storage needs to be allocated for a const unless its address is taken. Therefore, most optimizing compilers try to store them in static memory.

It is good programming style to use const entities instead of embedding constant expressions (sometimes called "magic numbers") in your code. This will gain you flexibility later when you need to change the values and, in general, it will improve the maintainability of your programs. For example, instead of something like this:

for(i = 0; i < 327; ++i) {

use something like this:

// const declaration section of your code
const int SIZE = 327;
for(i = 0; i < SIZE; ++i) {

In some C/C++ programs, you might see constants defined with preprocessor macros like this:

#define STRSIZE 80


char str[STRSIZE];

Preprocessor macros get replaced before the compiler sees them. Using macros instead of constants means that the compiler cannot perform the same level of type checking as it can with proper constant expressions. Generally const expressions are preferred to macros for defining constant values in C++ programs.

Part I: Introduction to C++ and Qt 4

C++ Introduction


Introduction to Qt



Inheritance and Polymorphism

Part II: Higher-Level Programming


Introduction to Design Patterns


Generics and Containers

Qt GUI Widgets


Validation and Regular Expressions

Parsing XML

Meta Objects, Properties, and Reflective Programming

More Design Patterns

Models and Views

Qt SQL Classes

Part III: C++ Language Reference

Types and Expressions

Scope and Storage Class

Statements and Control Structures

Memory Access

Chapter Summary

Inheritance in Detail

Miscellaneous Topics

Part IV: Programming Assignments

MP3 Jukebox Assignments

Part V: Appendices

MP3 Jukebox Assignments


MP3 Jukebox Assignments

An Introduction to Design Patterns in C++ with Qt 4
An Introduction to Design Patterns in C++ with Qt 4
ISBN: 0131879057
EAN: 2147483647
Year: 2004
Pages: 268 © 2008-2020.
If you may any questions please contact us: