Un membro private di una classe è inaccessibile al 100% dall'esterno della classe?
Per esempio io non potrei fare:
codice:
#include <iostream>
using namespace std;
class Test
{
private:
int dato;
public:
void Imposta(int a);
int * f();
};
void Test::Imposta( int a)
{
dato = a;
}
int * Test::f()
{
return &dato;
}
int main()
{
Test t;
t.Imposta(100);
int * x = t.f();
*x = 22;
cout << *t.f() << endl;
system("pause");
return 0;
}
Il codice funziona eccome. In teoria solo la funzione Imposta(int) potrebbe modificare dato che è private... ma io ci riesco lo stesso!
Come mai??