멤버함수의 const 위치에 따른 차이점
#include <iostream>
using namespace std;
class Vector
{
public:
	float x;
	float y;
	float z;
	Vector operator-()
	{
		return Vector{ -x,-y,-z };
	}
	const Vector operator+(const Vector& v) const
	{
		return Vector{ x + v.x, y + v.y, z + v.z };
	}
	void print()
	{
		cout << "x : " << x << " y : " << y << " z : " << z << endl;
	}
};
int main()
{
	Vector v0{ 0, 1, 2 };
	Vector v1{ 1, 2, 3 };
	Vector v2 = v0 + v1;
	Vector v3 = -v1;
	v0.print();
	v1.print();
	v2.print();
	v3.print();
}위 코드 내에서 Vector 클래스 내의 operator+는 다음과 같은 형식을 띄고 있다.
const Vector operator+(const Vector& v) const1. 앞의 const
리턴값을 읽기 전용으로 사용하겠다는 의미.
즉, 참조를 하여 값 변형을 막겠다는 의미이다.
2. 매개변수의 const
참조하는 매개변수의 값을 변형하지 않겠다는 의미.
- 뒤의 const
 기본적으로 매개함수는 암묵적으로 this를 참조한다.
void print()는
void print(Person* this)와 같다는 의미이다.
여기서 뒤에 const를 붙히면
void print(const Person* this)와 같게 된다.
쉽게 말해서 이 함수를 통하여 멤버 변수의 값을 변형하지 않겠다는 의미.
Author And Source
이 문제에 관하여(멤버함수의 const 위치에 따른 차이점), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hksdods/멤버함수의-const-위치에-따른-차이점저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)