#include<iostream>
using namespace std;
class A
{
int value;
public:
A(){value = 1;}
~A(){}
void print(){cout << value << endl;}
};
int main()
{
A a;
int* p = (int*)(&a);
*p = 20;
a.print();//output is 20.
}
Cela ne rompt-il pas l'encapsulation d'une classe? Je suis un débutant de C++. Je n'ai jamais vu cette méthode qui peut accéder au membre privé d'une classe dans le livre "C++ primer".Pourquoi C++ autorise-t-il l'accès au membre privé d'une classe via un pointeur?
Relatif: http://stackoverflow.com/q/424104/3093378 – vsoftco