Please assume the version of gcc 7.2.1 in this question
I would like to declare a global variable which behave like a const however, the value to initialize it cannot not be detected before the program being executed. In other words, the target variable would be re-assigned since the first time it is assigned.
An ugly approach of this concept as follow:
#include<iostream> int numberOfPeople; //Do not re-assign it after it first assign int main(){ std::cin >> numberOfPeople; // Do not re-assign numberOfPeople since then !!! // Following of codes omitted. } As you could see, this is a very ugly approach and cannot be checked by compiler. I wonder whether there is a kind of notation in c++ that can freeze the variable since it first assigned.
So I can write code like this:
#include<iostream> magic_notation int numberOfPeople; int main(){ std::cin >> numberOfPeople; // Allowed as it's first assign. // Median codes omitted. numberOfPeople = 60. //Disallowed and will get an error message from compiler! // Following codes omitted. } Is there any kind of notation as can use like the magic_notation in the code above in c++?