[c++] 구조체와 클래스의 클래스 멤버 접근

C++에서 구조체와 클래스는 비슷하게 동작하지만, 클래스의 멤버 접근과 관련하여 약간의 차이가 있습니다. 이 블로그에서는 구조체와 클래스의 멤버 접근에 대해 살펴보겠습니다.

구조체(struct)의 멤버 접근

구조체 멤버에 접근하는 방법은 간단합니다. 다음은 구조체의 선언과 멤버 접근하는 예시입니다.

struct Person {
    int age;
    void display() {
        std::cout << "Age: " << age;
    }
};

int main() {
    Person person;
    person.age = 25; // 구조체 멤버에 직접 접근
    person.display(); // 구조체 멤버 함수 호출
    return 0;
}

클래스(class)의 멤버 접근

클래스의 경우 접근 제어 지시자를 사용하여 멤버에 접근을 제어할 수 있습니다. 다음은 클래스의 선언과 멤버 접근하는 예시입니다.

class Person {
private:
    int age;

public:
    void setAge(int a) {
        age = a; // private 멤버에 접근
    }

    void display() {
        std::cout << "Age: " << age; // private 멤버를 출력
    }
};

int main() {
    Person person;
    person.setAge(25); // public 멤버 함수를 통한 private 멤버 접근
    person.display(); // public 멤버 함수를 통한 private 멤버 접근
    return 0;
}

요약

구조체의 경우에는 멤버에 직접 접근이 가능하지만, 클래스의 경우에는 접근 제어 지시자를 통해 멤버 접근을 제어할 수 있습니다. 이러한 차이로 인해 클래스는 보다 엄격한 캡슐화를 제공하며, 객체 지향 프로그래밍에서 데이터의 보호와 은닉을 지원합니다.

이상으로 C++에서 구조체와 클래스의 멤버 접근에 대한 내용을 살펴보았습니다.

cppreference.com - Structures

cppreference.com - Classes