반응형
C ++에서 단항 빼기 연산자를 오버로드하는 방법은 무엇입니까?
벡터 클래스를 구현하고 있으며 일부 벡터의 반대를 가져와야합니다. 연산자 오버로딩을 사용하여이 방법을 정의 할 수 있습니까?
제가 의미하는 바는 다음과 같습니다.
Vector2f vector1 = -vector2;
이 연산자가 수행하기를 원하는 것은 다음과 같습니다.
Vector2f& oppositeVector(const Vector2f &_vector)
{
x = -_vector.getX();
y = -_vector.getY();
return *this;
}
감사.
예,하지만 매개 변수를 제공하지 않습니다.
class Vector {
...
Vector operator-() {
// your code here
}
};
* this를 반환해서는 안됩니다. 단항 연산자는 적용되는 것을 변경하지 않고 완전히 새로운 벡터 값을 생성해야하므로 코드는 다음과 같이 보일 수 있습니다.
class Vector {
...
Vector operator-() const {
Vector v;
v.x = -x;
v.y = -y;
return v;
}
};
이것의
Vector2f operator-(const Vector2f& in) {
return Vector2f(-in.x,-in.y);
}
클래스 내부 또는 외부에있을 수 있습니다. 내 샘플은 네임 스페이스 범위에 있습니다.
참고 URL : https://stackoverflow.com/questions/2155275/how-to-overload-unary-minus-operator-in-c
반응형
'Development Tip' 카테고리의 다른 글
툴바 탐색 햄버거 아이콘 누락 (0) | 2020.11.07 |
---|---|
재정의 된 가상 메서드의 '기본 구현'을 어떻게 호출 할 수 있습니까? (0) | 2020.11.07 |
log4net은이 로그 파일을 어디에 생성합니까? (0) | 2020.11.07 |
부모가 아닌 텍스트를 포함하는 요소 만 반환하는 XPath (0) | 2020.11.07 |
활동이 시작되지 않았습니다. 현재 작업이 맨 앞으로 가져 왔습니다. (0) | 2020.11.07 |