[c++] 구조체와 클래스 멤버 함수

이번 포스팅에서는 C++에서 구조체와 클래스의 멤버 함수에 대해 알아보겠습니다.

구조체와 클래스

먼저, 구조체와 클래스를 간단히 설명하자면, 둘 다 여러 개의 데이터를 묶어서 하나의 타입으로 정의하는데 사용됩니다. 하지만, 구조체는 멤버 변수와 메서드를 가질 수 없지만, 클래스는 멤버 변수와 멤버 함수를 가질 수 있습니다.

멤버 함수의 정의

멤버 함수는 클래스나 구조체의 멤버로써 정의되는 함수를 말합니다. 아래의 예제를 통해 간단한 클래스와 구조체의 멤버 함수를 정의하는 방법을 살펴보겠습니다.

구조체의 멤버 함수

#include <iostream>
using namespace std;

struct Point {
  int x, y;

  void print() {
    cout << "x: " << x << ", y: " << y << endl;
  }
};

int main() {
  Point p;
  p.x = 5;
  p.y = 10;
  p.print();  // 멤버 함수 호출
  return 0;
}

위의 예제에서 Point 구조체에 print 멤버 함수를 정의하고 있습니다. 이 함수는 해당 구조체의 멤버 변수를 출력하는 기능을 가지고 있습니다.

클래스의 멤버 함수

#include <iostream>
using namespace std;

class Point {
  int x, y;

public:
  void setPoint(int x, int y) {
    this->x = x;
    this->y = y;
  }

  void print() {
    cout << "x: " << x << ", y: " << y << endl;
  }
};

int main() {
  Point p;
  p.setPoint(5, 10);  // 멤버 함수 호출
  p.print();  // 멤버 함수 호출
  return 0;
}

위의 예제에서 Point 클래스에 setPointprint 멤버 함수를 정의하고 있습니다. setPoint 함수는 멤버 변수의 값을 설정하고, print 함수는 해당 클래스의 멤버 변수를 출력하는 기능을 가지고 있습니다.

결론

구조체와 클래스는 각각 멤버 함수를 가질 수 있으며, 멤버 함수를 정의하는 방법은 비슷합니다. 이를 통해 코드의 모듈화와 객체 지향적 설계를 효율적으로 할 수 있습니다.

참고: cplusplus.com