#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) const
1. 앞의 const
리턴값을 읽기 전용으로 사용하겠다는 의미.
즉, 참조를 하여 값 변형을 막겠다는 의미이다.
2. 매개변수의 const
참조하는 매개변수의 값을 변형하지 않겠다는 의미.
3. 뒤의 const
기본적으로 매개함수는 암묵적으로 this를 참조한다.
void print()
는
void print(Person* this)
와 같다는 의미이다.
여기서 뒤에 const를 붙히면
void print(const Person* this)
와 같게 된다.
쉽게 말해서 이 함수를 통하여 멤버 변수의 값을 변형하지 않겠다는 의미.
블로거님 글 잘 봤습니다. 덕분에 가입도 했어요..
const 키워드를 사용하게 되면
라고 하네요..
아 아래는 제가 킹 받는 부분을 조금 적어 두었습니다. 글에 반영하면 글이 조금 더 좋아질것 같은데 괜찮으시겠어요?
단락 정렬... 크흠..
실행 결과 이미지... 크흠..
네 여기까지 쓰고 가겠습니다. 열공해서 훌륭한 게임 개발자가 되십셔. 🙄