반환형 함수이름(매개변수 목록) {
// 실행 코드
return 반환값;
}반환형(Return Type)
void 사용함수 이름
매개변수(Parameter)
함수 본문
반환값(Return Value)
return 키워드로 반환int Add(int a, int b) {
return a + b;
}
class Player {
public:
int Health;
void Damage(int amount) {
Health -= amount;
}
};
static)class Math {
public:
static int Multiply(int a, int b) {
return a * b;
}
};
virtual)class Animal {
public:
virtual void Speak() { std::cout << "Animal sound\n"; }
};
class Dog : public Animal {
public:
void Speak() override { std::cout << "Bark\n"; }
};
class Shape {
public:
virtual void Draw() = 0; // 순수가상함수
};
inline)inline int Square(int x) { return x * x; }
| 방식 | 설명 | 예시 |
|---|---|---|
| 값 전달 (Value) | 매개변수에 값 복사, 원본 영향 없음 | void Func(int a) |
| 참조 전달 (Reference) | 원본 변수에 직접 접근 | void Func(int& a) |
| 포인터 전달 (Pointer) | 메모리 주소 전달, NULL 체크 필요 | void Func(int* a) |
| const 참조 | 원본 접근하되 수정 불가 | void Func(const int& a) |
void Print(int x) { std::cout << x; }
void Print(std::string s) { std::cout << s; }
| 구분 | 선언 위치 | 호출 방식 | 멤버변수 접근 | 특징 |
|---|---|---|---|---|
| 전역 함수 | 클래스 밖 | 이름만 호출 | 불가능 | 어디서든 호출 가능 |
| 멤버 함수 | 클래스 안 | 객체를 통해 호출 | 가능 | 객체 상태를 바꿀 수 있음 |
| 정적 함수 | 클래스 안 | 클래스 이름으로 호출 | 불가능 | 객체 없이 호출 가능 |
| 가상 함수 | 클래스 안 | 포인터/참조 통해 호출 | 가능 | 런타임 다형성 구현 |
UCLASS()
class AMyActor : public AActor {
GENERATED_BODY()
public:
// 블루프린트에서도 호출 가능
UFUNCTION(BlueprintCallable)
void JumpAction();
// 오버라이드 예시
virtual void BeginPlay() override;
};