C++ constants

Created By: chatGPT

Constants in C++ are fixed values that do not change during the execution of a program. They can be defined using the const keyword or through preprocessor directives such as #define. Using constants helps in improving code readability and maintainability by providing meaningful names instead of magic numbers. Let's look at how to use both methods.
// Using const keyword
const int maxItems = 100;
const float pi = 3.14f;

// Using #define directive
#define MAX_ITEMS 100
#define PI 3.14f

You can also define constants for specific data types using enum or constexpr. Enumerations provide a way to create named integral constants, while constexpr allows for compile-time constant expressions.

For example, using enum to define state codes:

enum StateCode {
    SUCCESS = 0,
    ERROR = 1,
    UNKNOWN = -1
};
Using constexpr is essential when you need a constant value that can be evaluated at compile time. For instance, defining the size of an array or performing compile-time calculations is a common practice:
constexpr int arraySize = 10;
int numbers[arraySize];
When defining constants, it's good practice to give them meaningful names that reflect their purpose and to use uppercase letters for the names, usually separating words with underscores. This helps distinguish them from regular variables in the code.
const int MIN_CONNECTIONS = 5;
const double TAX_RATE = 0.07;
Remember to use constants instead of magic numbers to make your code clearer. Keep in mind that constants can improve the robustness of your code. If you need to change a constant, you only have to do it in one location, avoiding hard-to-find errors in your codebase.
// Example of using constants in calculations
float calculateTax(float amount) {
    return amount * TAX_RATE;
}
Introduction And SetupVariablesData TypesIntFloatDoubleCharBoolStringVoidConstantsOperatorsArithmetic OperatorsRelational OperatorsLogical OperatorsBitwise OperatorsAssignment OperatorsTernary OperatorControl FlowIf StatementElse StatementElse If StatementSwitch StatementFor LoopWhile LoopDo While LoopBreak StatementContinue StatementGoto StatementFunctionsFunction DeclarationFunction DefinitionFunction OverloadingInline FunctionsDefault ArgumentsRecursionPass By ValuePass By ReferenceData StructuresArraysMultidimensional ArraysStructsEnumsUnionsClassesObjectsMember FunctionsConstructorsDestructorsAccess SpecifiersPublicPrivateProtectedInheritancePolymorphismFunction OverridingVirtual FunctionsPure Virtual FunctionsOperator OverloadingTemplatesNamespaceCommentsSingle Line CommentsMulti Line CommentsSyntaxSemicolonCurly BracesParenthesesEvent HandlingCinCoutError HandlingTry BlockCatch BlockThrow StatementException HandlingPreprocessor DirectivesInclude GuardsMacro DefinitionsInline AssemblyStatic KeywordsExtern KeywordsConst KeywordsVolatile KeywordsFriend FunctionStatic MemberThis PointerDynamic Memory AllocationNew OperatorDelete Operator