No. Psal jsem to přímo z hlavy a chybička se vloudila.
Předchozí příklad vypíše 77 (tedy vždy lokální proměnnou ve třídě)
Zkoušel jsem to na Microsofťáckém překladači.
Globální proměnnou ve třídě je asi dobré vždy rozlišit jmenným rozsahem :: tyto dvě tečky.
Tady je úplný příklad na kterém jsem si to otestoval:
#include "stdafx.h"
#include <iostream>
int mojePremenna;
class Trieda
{
public:
int mojePremenna;
void vypisPremenne();
Trieda()
{
::mojePremenna = 4;
this->mojePremenna = 7;
}
};
using std::cout;
void Trieda::vypisPremenne()
{
cout << ::mojePremenna; // vypise 4
cout << this->mojePremenna; // vypise 7
}
int _tmain(int argc, _TCHAR* argv[])
{
Trieda *mojeTrida = new Trieda();
mojeTrida->vypisPremenne();
std::cin >> mojePremenna; // pro pauznutí výstupu, tady naplňujeme globální proměnnou.
delete mojeTrida;
return 0;
}
A mm má pravdu v tom, že ve třídě je zbytečné psát ukazatel this (nemusí to být v tom kódu).