가능한 한 클래스가 아닌 비회원 인터페이스를 만드는 것이 좋습니다. 3D 벡터 클래스의 경우, 'Vector3', 나는 + =, - = 등의 연산자를 클래스 밖으로 옮겨서 생성자와 복사 할당 연산자를 남겨 둘 수 있습니다.클래스에 대한 + = 연산자의 정규형
질문 :이 운영자는 어떤 모습이어야합니까? 다른 연산자를 많이 사용하는 정식 형식을보고 조언을 따라 왔지만 이러한 연산자의 표준 형식을 보지 못했습니다. 나는 그것이 아래 있어야한다고 생각하는 것을 주었다.
두 번째 질문은 다음과 같습니다. 산술 할당 연산자?
class Vector3 {
public:
Vector3& operator+=(const Vector3& rhs);
float x, y, z;
};
Vector3& Vector3::operator+=(const Vector3 &rhs) {
x += rhs.x;
y += rhs.y;
z += rhs.z;
return *this;
}
내가 지금까지 그것을 변경했습니다 무엇 : 전에
(관련) 코드
class Vector3 {
public:
float x, y, z;
};
Vector3& operator+=(Vector3& lhs, const Vector3& rhs) {
lhs.x += rhs.x;
lhs.y += rhs.y;
lhs.z += rhs.z;
return lhs;
}
: 당신이 다른 사람 전에이 이분 가지고 있기 때문에 그들은 내가 당신의 대답을 받아 들일 것, 충분한 화합물 할당 연산자 –