본문 바로가기

C,C++/공부 낙서

공부하면서 빠트린 것들 끄적끄적 - const

const 위치에 따른 역할 정리

class Test
{
public:
	Test();
	virtual ~Test();

public:
	C2DMatrix GetFromScreenToWorld() const
	{
		C2DMatrix mtxToWorld = m_mtxView * m_mtxScale * m_mtxProj * m_mtxScreen;
		CVectorOperation::C2DInverse(&mtxToWorld, &mtxToWorld);
		return mtxToWorld;
	}
    const Test GetThisClass()
    {
    	return *this;
    }

protected:
	C2DMatrix m_mtxView;
	C2DMatrix m_mtxScale;
	C2DMatrix m_mtxProj;
	C2DMatrix m_mtxScreen;
	C2DMatrix m_mtxRatio;

	C2DVector m_vPosW;
	C2DVector m_vUpW;
	C2DVector m_vRightW;
};

GetFromScreenToWorld() const : 해당 const는 이 함수로 인한 멤버변수의 값 변경을 막기 위해 사용합니다.

 

const Test GetThisClass() : 해당 const는 리턴할 때 해당 값을 가지고 또 다른 무언가를 실행함으로인한 값 변경을 막아줍니다.

예시) GetThisClass()->m_vPosW = 15; //에러 발생

 

참고)

https://eastroot1590.tistory.com/entry/C-Advenced-%EC%83%81%ED%99%A9%EB%B3%84-const%EC%9D%98-%EC%9D%98%EB%AF%B8

 

C++ Expert | 상황별 const의 의미

C++ 문법중에 const라는 키워드가 있다. 무언가를 상수화시킬 때 사용하는 키워드인데 공부하는 단계에서는 딱히 어떤 변수를 상수화시킬 필요성이 없기 때문에 잘 사용하지 않는 키워드이고 실

eastroot1590.tistory.com