차리토 실험실

C언어 예제 #7 (메소드, 객체, 구조체)

수차리토 2023. 3. 31. 20:33

메소드, 객체, 구조체는 모두 객체지향 프로그래밍의 중요한 개념입니다. 각각의 개념을 명확하게 구분하고, 이에 대한 예시를 알려드리겠습니다.

  • 메소드 (Method)

메소드는 객체가 가지고 있는 행동이나 기능을 구현한 코드 블록입니다. 메소드는 객체를 이용하여 호출하며, 호출되면 객체 내부의 코드가 실행됩니다. 메소드는 클래스 내부에 정의되어 있으며, 클래스 외부에서는 호출할 수 없습니다.

예를 들어, 다음과 같은 예시에서 printMessage()는 MyClass 클래스 내부에 정의된 메소드입니다.

 

class MyClass {
  public:
    void printMessage() {
        cout << "Hello, World!" << endl;
    }
};
  • 객체 (Object)

객체는 클래스를 기반으로 생성된 실체로, 클래스에서 정의된 속성과 메소드를 가지고 있습니다. 객체는 클래스의 인스턴스(instance)라고도 불립니다. 객체는 클래스의 정의를 기반으로 생성되며, 생성된 객체는 서로 독립적으로 작동합니다.

예를 들어, 다음과 같은 예시에서 MyClass는 클래스의 정의이며, obj는 MyClass를 기반으로 생성된 객체입니다.

 

class MyClass {
  public:
    void printMessage() {
        cout << "Hello, World!" << endl;
    }
};

int main() {
    MyClass obj;
    obj.printMessage(); // "Hello, World!" 출력
    return 0;
}
  • 구조체 (Struct)

구조체는 서로 관련된 데이터를 묶어 하나의 새로운 데이터 타입을 만드는데 사용됩니다. 구조체는 클래스와 유사하지만, 클래스보다는 단순한 데이터 저장용으로 사용됩니다. 구조체는 클래스와 달리, 따로 메모리 할당을 하지 않아도 변수를 선언하는 것만으로 사용할 수 있습니다.

예를 들어, 다음과 같은 예시에서 Person은 구조체의 정의이며, person1과 person2는 Person을 기반으로 생성된 구조체 변수입니다.

 

struct Person {
    string name;
    int age;
};

int main() {
    Person person1 = {"Alice", 20};
    Person person2 = {"Bob", 25};
    return 0;
}

각각의 개념을 구분해보면, 메소드는 객체가 가지고 있는 행동을 구현한 코드 블록이며, 객체는 클래스를 기반으로 생성된 실체이며, 구조체는 서로 관련된 데이터를 묶어 하나의 새로운 데이터 타입을 만드는데 사용됩니다.