본문 바로가기
C │ C++ │ C#

C++ Chapter 6.15 : 포인터와 참조의 멤버 선택

by Pokaa 2024. 2. 12.
728x90
728x90
SMALL
포인터와 참조의 멤버 선택


포인터 혹은 참조로 구조체/클래스 멤버에 접근할 수 있다.

#include<iostream>

using namespace std;


struct Person
{
    int age;
    double weight;
};

int main()
{
    Person person;
    person.age = 5;

    /* 참조로 멤버에 접근 */
    Person &ref = person;  // 구조체 참조 변수
    ref.age = 15;

    /* 포인터로 멤버에 접근 */
    Person *ptr = &person; // 포인터 참조 변수
    ptr->age = 30;  // 포인터로 멤버에 간접참조로 접근할땐 -> 화살표를 사용한다.
    (*ptr).age = 20; // . 가 * 보다 우선순위가 높기 때문에 간접참조를 하기 위해선 *를 괄호로 감싸우어야 한다.

    Person &ref2 = *ptr; // ptr이 가리키고 있는 것은 person이니 Person &ref2 = person이나 마찬가지.
    ref2.age = 45;

    cout << &person << endl;
    cout << &ref2 << endl;

    return 0;
}
728x90
300x250
LIST