parvin
0
Q:

how to declare a constant in c++

#include <stdio.h> 
  
int main() 
{ 
    // int constant 
    const int intVal = 10;  
  
    // Real constant 
    const float floatVal = 4.14; 
   
    // char constant  
    const char charVal = 'A';  
  
    // string constant 
    const char stringVal[10] = "ABC";  
      
    printf("Integer constant:%d \n", intVal ); 
    printf("Floating point constant: %.2f\n", floatVal ); 
    printf("Character constant: %c\n", charVal ); 
    printf("String constant: %s\n", stringVal); 
      
    return 0; 
} 
0
// various versions of const are explained below
#include <iostream>
class Entity {
private:
	int m_X, m_Y;
	mutable int var; // can be modified inside const menthods
	int* m_x, *m_y;// * use to create pointer in one line
public:
	int GetX() const // cant modify class variables
	{
		//m_X = 4;//error private member can't be modified inside const method
		var = 5; // was set mutable
		return m_X;
	}
	int Get_X()// will modify class 
	{
		return m_X;
	}
	const int* const getX() const  // returning a pointer that cannot be modified & context of pointer cannot be modified
	{
		//m_x = 4;
		return m_x;
	}
	void PrintEntity(const Entity& e) {
		std::cout << e.GetX() << std::endl;
	}
};
int main() {
	Entity e;
	const int MAX_AGE = 90;
   // MAX_AGE =100; error const var is stored in read only section in memory and we can't write to that memory
	//  int const* a = new int; is same as const int* a = new int ;////but you can't change the context of pointer but can reassign it to a pointer something else
	int * const a = new int; //can change the context of pointer but can't reassign it to a pointer something else
   *a = 2;
    a = &MAX_AGE;// error can't change it to ptr something else
   	std::cout << *a << std::endl;
	a =(int*) &MAX_AGE;
	std::cout << *a << std::endl;
}
0

New to Communities?

Join the community