C++ 07.17 - Member selection with pointers and references
2018. 7. 28. 19:26 - 소년코딩Member selection with pointers and references
구조체(또는 클래스)에 대한 포인터(pointer)나 참조형(reference)을 가지는 경우가 많다. 이전에 배웠던 것처럼 멤버 선택 연산자(.
)를 사용해 구조체의 멤버를 선택할 수 있다.
struct Person
{
int age;
double weight;
};
Person person;
// Member selection using actual struct variable
person.age = 5;
이 문법은 참조형에서도 같다.
struct Person
{
int age;
double weight;
};
Person person; // define a person
// Member selection using reference to struct
Person& ref = person;
ref.age = 5;
그러나 포인터에서는 역참조 연산자(*
)를 사용해서 역참조(dereference) 해야 한다.
struct Person
{
int age;
double weight;
};
Person person;
// Member selection using pointer to struct
Person* ptr = &person;
(*ptr).age= 5;
멤버 선택 연산자(.
)는 역참조 연산자(*
)보다 우선순위가 높으므로 포인터 역참조를 괄호로 묶어야 한다.
포인터를 통해 구조체 및 클래스 멤버에 접근하는 구문은 어색하므로 C++에서는 포인터로 멤버를 선택하는데 두 번째 멤버 선택 연산자(->
)를 제공한다. 다음 두 줄은 같다.
(*ptr).age = 5;
ptr->age = 5;
이 형식은 더 쉬울 뿐만 아니라 우선순위에 대해서 걱정할 필요가 없다.
포인터를 통해 멤버에 접근을 하는 경우 ->
연산자를 사용하자.
'C++ 이야기 > 07. 배열, 문자열, 포인터 및 레퍼런스' 카테고리의 다른 글
C++ 07.19 - void pointer (0) | 2018.07.29 |
---|---|
C++ 07.18 - 범위 기반 for 문 (range-based for statement) (0) | 2018.07.29 |
C++ 07.16 - 참조와 const (Reference and const) (0) | 2018.07.27 |
C++ 07.15 - 참조형 변수 (Reference variable) (9) | 2018.07.27 |
C++ 07.14 - 포인터와 const (pointer and const) (1) | 2018.07.26 |
댓글 로드 중…