«operator-overloading» 태그된 질문

연산자 오버로딩은 관련된 피연산자의 유형에 따라 연산자에 대한 사용자 정의 구현을 허용하는 프로그래밍 언어의 기능입니다. 일부 언어에서는 새 연산자를 정의 할 수 있고 다른 언어에서는 기존 연산자 만 재정의 할 수 있습니다.

7
운영자 과부하에 대한 기본 규칙과 관용구는 무엇입니까?
참고 : 답변은 특정 순서대로 제공 되었지만 많은 사용자가 답변을받은 시간이 아니라 투표에 따라 답변을 정렬하므로 가장 적합한 순서대로 답변 색인을 제공합니다 . C ++에서 연산자 오버로드의 일반적인 구문 C ++에서 연산자 오버로드의 3 가지 기본 규칙 회원과 비회원의 결정 과부하를 일으키는 일반적인 연산자 할당 연산자 입력 및 출력 연산자 …

16
Java가 왜 연산자 오버로드를 제공하지 않습니까?
C ++에서 Java로 올 때 대답이 분명하지 않은 질문은 Java에 연산자 오버로드가 포함되지 않은 이유는 무엇입니까? 아닌가 Complex a, b, c; a = b + c;보다 훨씬 간단 Complex a, b, c; a = b.add(c);? 연산자 오버로드를 허용 하지 않는 유효한 인수가 알려진 이유가 있습니까? 그 이유는 임의적입니까, 아니면 시간을 …

10
프리 프린트 C ++ STL 컨테이너
이 게시물 끝에 업데이트 내용을 기록해 두십시오. 업데이트 : 이 라이브러리의 GitHub 에 공개 프로젝트를 만들었습니다 ! 를 통해 모든 STL 컨테이너를 예쁘게 인쇄하는 단일 템플릿을 원합니다 operator<<. 의사 코드에서 다음과 같은 것을 찾고 있습니다. template<container C, class T, String delim = ", ", String open = "[", String close …

15
==와! =는 상호 의존적입니까?
나는 C ++에서 연산자 오버로딩에 대해 배우고, 나는 그것을보고 ==및 !=사용자 정의 형식 사용자 정의 할 수있는 몇 가지 특별한 기능은 간단하다. 그러나 내 관심사는 왜 두 개의 별도 정의가 필요한가? 나는 경우 생각 a == b사실, 다음 a != b, 정의, 때문에, 반대로 자동으로 거짓, 그리고 그 반대이며, 다른 …

8
C #에서 대괄호 연산자를 어떻게 과부하합니까?
예를 들어 DataGridView를 사용하면 다음을 수행 할 수 있습니다. DataGridView dgv = ...; DataGridViewCell cell = dgv[1,5]; 그러나 내 인생에서 색인 / 대괄호 연산자에 대한 문서를 찾을 수 없습니다. 그들은 그것을 무엇이라고 부릅니까? 어디에서 구현됩니까? 던질 수 있습니까? 내 수업에서 어떻게 똑같은 일을 할 수 있습니까? ETA : 모든 빠른 …

5
ostream에 << 연산자를 올바르게 오버로드하는 방법은 무엇입니까?
행렬 작업을 위해 C ++로 작은 행렬 라이브러리를 작성하고 있습니다. 그러나 내 컴파일러는 전에는 그렇지 않은 곳에서 불평합니다. 이 코드는 6 개월 동안 선반에 있었고 컴퓨터를 데비안 에칭에서 레니 (g ++ (Debian 4.3.2-1.1) 4.3.2)로 업그레이드했지만 동일한 g ++의 우분투 시스템에서 동일한 문제가 있습니다. . 내 매트릭스 클래스의 관련 부분은 다음과 …




6
C # 확장 메서드를 사용하여 연산자 오버로드
확장 메서드를 사용하여 C # StringBuilder클래스에 연산자 오버로드를 추가하려고합니다 . 특히, 주어진 StringBuilder sb, 내가 좋아하는 것 sb += "text"에 해당되기 위해 sb.Append("text"). 다음에 대한 확장 메소드를 작성하는 구문은 다음과 같습니다 StringBuilder. public static class sbExtensions { public static StringBuilder blah(this StringBuilder sb) { return sb; } } blah확장 방법을에 …

5
operator &가 오버로드 될 때 어떻게 안정적으로 객체의 주소를 얻을 수 있습니까?
다음 프로그램을 고려하십시오. struct ghost { // ghosts like to pretend that they don't exist ghost* operator&amp;() const volatile { return 0; } }; int main() { ghost clyde; ghost* clydes_address = &amp;clyde; // darn; that's not clyde's address :'( } clyde의 주소 는 어떻게 얻 습니까? 모든 유형의 객체에 …

14
스칼라의 연산자 오버로드가 "좋은"것이지만 C ++의 "나쁜"것은 무엇입니까?
C ++에서 연산자 오버로딩은 많은 사람들에 의해 A Bad Thing (tm)으로 간주되며, 새로운 언어에서는 반복되지 않는 실수입니다. 확실히, 그것은 자바를 설계 할 때 특별히 떨어 뜨린 기능 중 하나였습니다. 스칼라에 대해 읽기 시작 했으므로 연산자 오버로드와 매우 흡사합니다 (기술적으로는 연산자가없고 함수 만 있기 때문에 연산자 오버로드가 없지만). 그러나 C ++에서 …

9
실제로 오버로드 된 && 및 || 이유가 있습니까? 단락하지 않습니까?
짧은 단락의 운영자의 행동 &amp;&amp;과는 ||프로그래머를위한 놀라운 도구입니다. 그러나 오버로드 될 때 왜이 동작이 손실됩니까? 연산자는 함수의 구문 설탕 일 뿐이지 만 연산자 bool는이 동작 을 가지고 있습니다. 왜이 단일 유형으로 제한되어야합니까? 이것 뒤에 기술적 이유가 있습니까?

5
멤버 액세스 연산자 과부하->,. *
나는, 멤버 액세스 연산자를 제외한 대부분의 연산자 오버로딩을 이해 -&gt;, .*, -&gt;*등 특히,이 연산자 함수로 전달되는 것은 무엇이고 무엇을 반환해야합니까? 운영자 기능 (예 operator-&gt;(...):)은 어떤 멤버가 참조되고 있는지 어떻게 알 수 있습니까? 알 수 있습니까? 심지어 알아야합니까? 마지막으로 고려해야 할 const 고려 사항이 있습니까? 예를 들어과 같은 것을 오버로드 할 …

8
operator <<는 친구 또는 멤버 함수로 구현해야합니까?
그것이 기본적으로 질문입니다. "올바른"구현 방법이 operator&lt;&lt;있습니까? 이것을 읽으면 다음과 같은 것을 볼 수 있습니다. friend bool operator&lt;&lt;(obj const&amp; lhs, obj const&amp; rhs); 같은 것보다 선호됩니다 ostream&amp; operator&lt;&lt;(obj const&amp; rhs); 하지만 왜 둘 중 하나를 사용해야하는지 잘 모르겠습니다. 내 개인 사례는 다음과 같습니다. friend ostream &amp; operator&lt;&lt;(ostream &amp;os, const Paragraph&amp; p) …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.