연산자 오버로딩 예제

참고: 오버로드된 연산자의 작업의 의미가 기본 형식에 대해 명확하고 실용적이며 적절하게 명명된 함수 호출에 대해 중요한 표기간이성을 제공하는 경우에만 연산자 오버로드를 사용해야 합니다. 다음으로 위의 단계를 반복하여 const 오버로드를 활성화합니다. 다양한 메서드의 const 버전을 만들고 Matrix::ConstRow라고 하는 새 중첩 클래스를 만듭니다. 대신 매트릭스 & const 매트릭스를 사용하는 것을 잊지 마세요. 거의 모든 연산자는 무한한 다른 방식으로 오버로드 될 수 있습니다. 다음은 연산자 오버로드에 대해 자세히 알아볼 수 있는 몇 가지 예입니다. 모든 예제는 밀접하게 연결되어 있습니다. -> 연산자가 형식(T*)의 포인터 값에 적용되면 언어는 포인터를 참조하고 을 적용합니다. (그래서 x->m은 (*x)m에 해당합니다. 그러나 -> 연산자가 클래스 인스턴스에 적용되면 비접두 연산자로 호출됩니다.

-> 연산자가 다시 적용할 수 있는 값을 반환해야 합니다. 일반적으로 위의 주소, 참조 및 포인터 연산자 아래의 예에서와 같이 형식(T*)의 값이 될 수 있지만 operator->()가 정의된 클래스 인스턴스일 수도 있습니다. 언어는 type(T*)의 값에 도달할 때까지 필요한 만큼 operator->()를 호출합니다. C++에서는 연산자가 사용자 정의 클래스에 대해 작업하도록 만들 수 있습니다. 즉, C++는 운영자에게 데이터 형식에 대한 특별한 의미를 제공할 수 있으며 이 기능을 연산자 오버로드라고 합니다. 예를 들어 String과 같은 클래스에서 연산자 `+`를 오버로드하여 +를 사용하여 두 개의 문자열을 통합할 수 있습니다. 산술 연산자가 오버로드될 수 있는 다른 예제 클래스는 복합 번호, 분수 수, 큰 정수 등입니다. 연산자 오버로드를 사용하면 클래스 개발자가 아닌 클래스 사용자가 더 쉽게 사용할 수 있습니다! 3) 변환 연산자 : 우리는 또한 다른 유형으로 한 유형을 변환하는 데 사용할 수있는 변환 연산자작성 할 수 있습니다. 모든 비트별 연산자는 이진 연산자이며, 보완은 어지릅니다. 이러한 연산자는 산술 연산자보다 우선 순위가 낮기 때문에 ^가 지수화에 대해 과부하가 걸리면 x ^ y + z가 의도한 대로 작동하지 않을 수 있습니다. 특히 교대 근무자인 <가 언급되어 있습니다.

스트림과의 상호 작용을 위해 표준 라이브러리에 오버로드되었습니다. 스트림으로 작업하도록 이러한 연산자에 오버로드할 때 는 아래 규칙을 따라야 합니다. C++를 사용하면 함수 오버로드 및 연산자 오버로드를 각각 호출하는 함수 이름 또는 연산에 대해 두 개 이상의 정의를 지정할 수 있습니다. 따라서 클래스의 일부 데이터 값이 사용자의 책임(이 경우 클래스가 해당 데이터에 대해 get(/set(set() 메서드를 가져야 하지만 클래스가 제어하려는 데이터에 get(/set() 메서드가 반드시 없는 경우의 예를 볼 수 있습니다. 다음은 연산자 오버로드의 많은 예: 연산자 오버로드(덜 일반적으로 임시 다형성)는 +, = 또는 ==와 같은 일부 또는 모든 연산자가 다형성(언어의 OO 특성의 일부)의 특정 사례입니다. 다형성 함수와 같은 인수의 유형에 따라 다른 동작이 있습니다.

Kommentieren ist momentan nicht möglich.

Heimleiterin:
Frau Dumke

Seeallee 3
15299 Müllrose

Tel.: 033606 / 70284
Fax: 033606 / 70285

E-Mail:
kindernester@arcor.de

» 크로스사이트 스크립트 예제
» 파이썬 쉬운 예제
» 마운트 예제
» 리눅스 opencv 예제
» 메이븐 프로젝트 예제

© 2015 by Kindernester Schlaubetal e.V. | Hosted by RB Media Group GmbH | Kontakt | Impressum