반응형

연산자 오버로딩 2

연산자 오버로딩 정리 c++

앞서 변환생성자와 명시적 변환에 대한 내용을 살펴보았다. 이번에는 연산자 오버로딩의 종류에 대한 내용을 정리할 것인데 앞서 주제와 연관된 내용이 있으므로 주목해서 보도록 하자. 그 전에 Scalar type과 non-Scalar type이 무엇인지 생각해 보면 도움이 된다. vector는 자주 들어봤을 것이다. 보통 스칼라(scalar)는 하나의 속성만 가진 값, 벡터(vector)는 여러 속성을 가진 값으로 이해할 수있다. type의 관점에서 스칼라(Scalar)라고 하면 하나의 값에 대한 정보만 가지고 있는 type을 말한다. C언어에서는 int, char, long, float, double 등 하나의 수로 표시될 수 있는 기본타입을 말한다. 참고 : https://msdn.microsoft.com..

프로그래밍/cpp 2017.03.19

연산자 오버로딩 C++

일반적인 연산을 살펴보면 오버로딩과 비슷한 규칙을 살펴볼 수 있다. 피연산자의 타입이 달라지더라도 알아서 계산이 된다는 것이다. 예를들어 정수+정수 의 연산결과는 정수가 되고, 실수+실수 의 연산결과는 실수가 된다. 이렇게 피연산자의 타입을 알아서 체크하고 그에 맞는 +연산을 하는 것은 마치 함수가 인수의 타입에 따라서 작동하는 오버로딩과 비슷하다 볼 수 있다. 이렇게 살펴본 사실은 실제로 사실이다. 다시말해 '+'는 피연산자의 타입에 따라서 오버로딩 되어있다. 하지만 char*타입과 같은 문자나 클래스 타입에 대해서는 작동하지않는다. 그렇다면 사용자가 직접 이런 연산자들을 오버로딩하는 법이 있을까? 15~18라인은 연산자 오버로딩코드이다. 일반적인 함수의 선언과 비슷한데 눈여겨볼 점은 호출시의 모양이다..

프로그래밍/cpp 2014.03.19
반응형