私は単純なクラスを持っています。クラスのオブジェクトを作成しました。オブジェクトへのポインタを使用してクラスメンバーにアクセスしたかったのです。 私は利用可能な2つの方法があることを知っています:ptr-> memberと(* ptr).member 私は何をしたいですか? Cのように、structメンバにアクセスできるポインタをインクリメントするだけで、structメンバ名を与える必要はありません。メンバー-1から始まり、ポインタを増やし、メンバー2にアクセスするのと同じです。ポインタを使ってC++でクラスのメモリマップを見る方法
私は知っています:このコードは、< <は演算子がオーバーロードされていてコンパイルしないと考えています。しかし、メンバー名を与えずに - >、(*)を使用して、逆参照を使用してクラスメンバをプリントする方法&ポインタの増分。
#include<iostream>
using namespace std;
class base{
public:
int a
char b;
base(){a=10;b='a';}
void test(base *ptr){
cout<<"Member-1="<<(*ptr);
ptr++;
cout<<"Member-2="<<(*ptr);
}
};
int main(){
base objB;
objB.test(&objB);
}
コードの書式設定を修正してください。 –
'ptr ++'はあなたに次のメンバーを与えません。次の 'base'に移動します。ちょうどそれがCのように。 –
あなたはこれで成し遂げたいのですか? – MagunRa