たとえば、2つのメンバーを持つ構造体があります。
struct DataSet {
int x;
int y;
};
...、そして私はメソッドでそれらにアクセスする必要がありますが、一度に1つだけです、例えば:
void foo(StructMember dsm) { // ("StructMember" does not exist)
DataSet ds;
ds.x = 4;
ds.y = 6;
std::cout << ds.dsm * ds.dsm << std::endl;
}
foo(x);
foo(y);
私が欲しい出力:
16
36
このような問題を解決する必要がある場合はどうすればよいですか?メンバーにアクセスできるデータ型はありますか?
@ ocket8888に
—
スーパー
c++はメンバーへのポインターがあるため、これを機能させるためにカスタムポインターハックを行う必要はありません。
@eerorikaそうですね。以前はメンバーとして2つの文字列がありましたが、それらをintに変更しました。「std ::」を削除するのを忘れました。
—
エイドリアン
dsm = 0にアクセスxしdsm = 4てにアクセスしy、のようにアクセスしますint val = int(*(&ds+dsm))。