본문 바로가기
언리얼(Unreal)/엔진

24.12.06 언리얼(Cpp 멤버변수,메소드 등) 사용법

by alwaysyoung2 2024. 12. 6.
728x90
반응형

C++에서 클래스객체 지향 프로그래밍의 핵심 요소로, 객체의 데이터와 동작을 캡슐화하여 코드의 재사용성과 유지보수성을 향상시킵니다. 클래스를 사용하면 다양한 객체를 모델링하고, 객체 지향 프로그래밍의 장점을 효과적으로 활용할 수 있습니다

 

클래스의 기본요소

 

class 클래스이름 {
public:
    // 공개 멤버 변수 및 메소드
private:
    // 비공개 멤버 변수 및 메소드
};

 

public: 외부에서 접근 가능한 멤버들

private: 클래스 내부에서만 접근 가능한 멤버들

 

멤버 변수는 클래스의 인스턴스(객체)와 연관된 데이터를 저장합니다.

class Person {
public:
    std::string name;  // 이름
    int age;           // 나이
};

메소드는 클래스 내부의 함수로, 객체의 동작을 정의합니다.


class Person {
public:
    std::string name;
    int age;

    // 멤버 변수에 값을 설정하는 메소드
    void setDetails(std::string n, int a) {
        name = n;
        age = a;
    }

    // 멤버 변수를 출력하는 메소드
    void printDetails() {
        std::cout << "Name: " << name << ", Age: " << age << std::endl;
    }
}; 

 

사용예시

Person p;  // Person 객체 생성
p.setDetails("John", 25);
p.printDetails();  // 출력: Name: John, Age: 25

 

생성자 소멸자?

생성자(Constructor): 객체가 생성될 때 자동으로 호출되어 멤버 변수를 초기화합니다.

소멸자(Destructor): 객체가 소멸될 때 자동으로 호출되며, 사용한 자원을 정리합니다.

 

ex)

class Person {
public:
    std::string name;
    int age;

    // 생성자: 객체 생성 시 호출
    Person(std::string n, int a) {
        name = n;
        age = a;
    }

    // 소멸자: 객체 소멸 시 호출
    ~Person() {
        std::cout << "Person object destroyed!" << std::endl;
    }

    void printDetails() {
        std::cout << "Name: " << name << ", Age: " << age << std::endl;
    }
};

Person p("Alice", 30);  // 생성자 호출
p.printDetails();  // 출력: Name: Alice, Age: 30
// 모든 코드가 실행 된 이후, 프로그램 종료 시 소멸자가 자동 호출 - "Person object destroyed!"

 

즉 , 생성자는 객체가 생성될 때 자동으로 호출되는 함수입니다.

클래스 이름과 동일한 이름을 가지며 반환 타입이 없습니다( void도 안씀)

 

생성자의 특징?

  1. 자동 호출: 객체가 생성될 때 자동으로 호출됩니다.
  2. 초기화 담당: 객체의 속성(멤버 변수)을 초기화하는 데 사용됩니다.
  3. 오버로딩 가능: 여러 개의 생성자를 정의할 수 있습니다(매개변수에 따라 다르게 동작).

소멸자는 객체의 수명이 끝날때 호출됩니다.

클래스 앞에 ~를 붙여 정의 하며 반환타입과 매개변수가 없습니다.

 

소멸자의 특징?

  1. 자동 호출: 객체가 소멸될 때 자동으로 호출됩니다.
  2. 정리 담당: 동적 메모리 해제, 파일 닫기 등 정리 작업에 사용됩니다.
  3. 오버로딩 불가능: 소멸자는 클래스당 하나만 정의할 수 있습니다.

왜 있어야하는 걸까?

이 둘을 활용하면 쓸때만 메모리를 잠깐 써주고 알아서 자동으로 없애줘서 메모리의 누수를 막을 수 있다.

728x90
반응형