c,c++

const 키워드에 관해서

comwitch 2022. 10. 24. 22:45

const라는 키워드는 해당 변수를 상수화 시키는데 사용이 되는 키워드다.

 

다음 용례에 대해서 사용을 주의하도록 하자.

 

1. const int, int const : 차이가 없다. int형 자료형을 상수화시키는데 사용한다는 점에서 같다.

 

2. int const *, int * const : 차이가 있다.  먼저 int const *는 포인터가 가리키는 값이 상수화 시키기 때문에 값을 변화시킬 수 없고, int * const는 주소 자체를 상수화시키기 때문에 값을 변화시킬 수 있지만, 주소를 변경할 수 없다.

 

3. 함수명(매개변수) const : 함수의 값자체를 상수화 시키는것 이럴 때는 정의된 함수는 선언되었을 때, 함수가 어떤 값을 변경시키면 안된다. 

 

ex)

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once
// MovingPlatform.h
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MovingPlatform.generated.h"

UCLASS()
class UNREALLEARNINGKIT_API AMovingPlatform : public AActor
{
	GENERATED_BODY()

...

private:

	bool ShouldPlatformReturn() const; // const 함수 선언
	float GetDistanceMoved() const;
};

// MovingPlatform.cpp

{
...


	float AMovingPlatform::GetDistanceMoved() const
	{
		return (float)FVector::Dist(StartLocation, GetActorLocation()); //변하는 값이 없다

	}

}