본문 바로가기
Dev/C\C++

[C++] 함수와 const

by Ladun 2019. 12. 30.

목차

  1. 함수의 매개변수에 const

  2. 함수의 반환값에 const

  3. 함수명 뒤에 const


1. 함수의 매개변수에 const

class CMyClass
{
public:
	CMyClass();
	~CMyClass();

private:
	int m_iPosX;
	int m_iPosY;

public:
	void SetPos(const int iPosX, const int iPosY)
	{
		//iPosX = -1; // 오류 발생
		m_iPosX = iPosX;
		m_iPosY = iPosY;
	}
};

 함수의 매개변수에 const를 붙이면 매개변수의 값을 변경할 수 없다. 즉, const 예약어가 가지는 기능을 매개변수에 적용시키는 것이다. 매개변수가 변경되면 안되는 경우에 사용된다.

 

2. 함수의 반환값에 const

	const int Func()
	{
		...
	}

 함수의 앞에 const가 붙으면 반환값을 const 기능을 가지는 값으로 반환한다는 뜻이다. 반환된 값은 변경하지 못하도록 하기 위해서 사용된다.

3. 함수명 뒤에 const

class CMyClass
{
public:
	CMyClass();
	~CMyClass();

private:
	int m_iPosX;
	int m_iPosY;

public:
	void SetPos(const int iPosX, const int iPosY)
	{
		m_iPosX = iPosX;
		m_iPosY = iPosY;
	}

	int GetPosX() const
	{
		return m_iPosX;
	}
	int GetPosY() const
	{
		return m_iPosY;
	}
};

 함수의 뒤에 const가 붙으면, 해당함수 내에서 멤버변수의 변경을 못하도록 막는다.

 예를 들어, 위 Get~()함수 내에서는 m_iPosX,Y 함수의 값을 변경할 수 없게 된다.

'Dev > C\C++' 카테고리의 다른 글

[C/C++] 10진법 -> N진법 변환  (0) 2020.01.30
[C/C++] free  (0) 2019.11.07
[C/C++] malloc  (0) 2019.11.07
[C/C++] memcmp  (0) 2019.11.02
[C/C++] memset  (0) 2019.11.01