私はポインタの助けを借りてプライベートメンバーにアクセスしようとしています。私はdtypeをなぜ(int *)& tの前に記述するのか知りたいですか?C++でクラスのプライベートメンバーにアクセスするために、オブジェクトのアドレスの前にデータ型を記述する必要があるのはなぜですか?
class Test
{
private:
int data;
public:
Test() { data = 0; }
int getData() { return data; }
};
int main()
{
Test t;
int* ptr = (int*)&t;
*ptr = 10;
cout << t.getData();
return 0;
}
*** int * ptr =(int *)&t; *** –
値に直接アクセスする必要がある場合は、 'data'をpublicにしてください。クラスには、 'data'にアクセスして操作するメソッドを作成することができます。独自のスコープの外部にあるクラスのメンバーを直接操作しないようにする必要があります。 –