예를 들어 두 멤버가있는 구조체가 있습니다.
struct DataSet {
int x;
int y;
};
..., 그리고 메소드의 사람들에게 액세스해야하지만 한 번에 하나씩 만 액세스해야합니다.
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 당신이 맞아요. 이전에는 멤버로 두 개의 문자열이 있었지만 int로 변경했습니다. "std ::"를 제거하는 것을 잊었습니다.
—
Adrian
dsm = 0액세스x및dsm = 4액세스y다음처럼 액세스 것,int val = int(*(&ds+dsm)).