where the name of the program is: ToolsViewConsoleAbout_MainPage
^^ this is not important. unless you did something screwy with argv[0] or hard coded something odd, the program is actually unaware of the name of its own executable / project name / file names (apart from #includes of course).
what you are seeing is the CLASS name.
it is usually necessary.
class ex
{
int x;
void foo() //does not need :: as it is inside the class
{x = 3;}
void bar();
}
void ex::bar() //needed. if you don't put ex::, the compiler can't tell that you did not INTEND
to have a stand-alone function named bar. And you can overload bar to have a stand-alone version. the :: is required.
{
x = 4;
}
that is:
void bar() //this function is not a class method. its a 'procedural design paradigm' free floating function. the only difference is the qualifier...
{
}