함수 오버로드는 이름이 같은 두 개 이상의 함수를 갖는 프로세스로 정의되지만 매개 변수마다 다른 매개 변수를 C++에서 함수 오버로드라고 합니다. 함수 오버로드에서 함수는 다른 유형의 인수 또는 다른 수의 인수를 사용하여 재정의됩니다. 이러한 차이 컴파일러를 통해서만 함수를 구별할 수 있습니다. 4) 단일 인수로 호출할 수 있는 모든 생성자는 변환 생성자로 작동하며, 이는 생성되는 클래스에 대한 암시적 변환에도 사용할 수 있음을 의미합니다. 모든 운영자에게 과부하가 걸 수 있습니까? 거의 모든 연산자는 몇 가지를 제외하고 오버로드 될 수 있습니다. 다음은 오버로드할 수 없는 연산자 목록입니다. 이제 모두가 당신이 다르다는 것을 알고 있습니다. 당신은 미래에 대한 완벽한 지식을 가지고 있으며, 매트릭스의 내부 데이터 구조를 변경하여 어떤 이점을 찾을 수 없다는 것을 알고 있습니다. 게다가 당신은 좋은 프로그래머입니다, 때때로 잘못된 매개 변수를 전달 하는 거기 밖으로 그 slobs 달리, 그래서 당신은 매개 변수 검사 같은 성가신 작은 것 들에 대해 걱정할 필요가 없습니다.

그러나 유지 관리 비용에 대해 걱정할 필요가 없지만 (아무도 코드를 변경할 필요가 없음), 아직 완벽하지 않은 한 두 명의 다른 프로그래머가있을 수 있습니다. 이를 위해 유지보수 비용이 높고, 결함이 실제이며, 요구 사항이 변경됩니다. 믿거나 말거나, 때때로 그들은 (더 나은 앉아서) 코드를 변경해야합니다. 이름이 같지만 매개 변수의 수나 유형이 다른 두 개 이상의 멤버를 만드는 경우 C++ 오버로드라고 합니다. C++에서 오버로드할 수 있습니다: 이진 연산자는 일반적으로 대칭을 유지하기 위해 비멤버로 구현됩니다(예: 복잡한 숫자와 정수를 추가할 때 operator+가 복합 형식의 멤버 함수인 경우 복합+정수만 컴파일하고 컴파일하지 않습니다. 정수 +복합). 모든 이진 산술 연산자에는 해당 복합 할당 연산자가 존재하기 때문에 이진 연산자의 표준 형식은 복합 할당 측면에서 구현됩니다. 해당 클래스의 사용자의 직관. 이렇게 하면 사용자가 컴퓨터의 언어가 아닌 문제 도메인의 언어로 프로그래밍할 수 있습니다. 2) 할당 연산자: 컴파일러는 모든 클래스에 기본 할당 연산자를 자동으로 만듭니다.

기본 할당 연산자는 오른쪽에 있는 모든 멤버를 왼쪽에 할당하며 대부분의 경우 제대로 작동합니다(이 동작은 복사 생성자와 동일합니다). 자세한 내용은 이쪽을 참조하십시오. 이것은 클래스에서 수행해야 하는 모든 것이 String 클래스의 toString() 메서드를 재정의하고 해당 클래스의 개체를 인쇄하는 방법을 정의할 수 있는 Core Java와 같은 언어에서 함축됩니다. 두 숫자를 일반추가하면 합계 결과가 반환됩니다. 위의 경우 두 개의 Time 클래스 개체를 추가하기 위해 + 연산자가 오버로드되었습니다. 초, 분 및 시간 값을 별도로 추가하여 새 시간 값을 반환합니다. == = , != , <= 등과 같은 관계형 연산자에 과부하를 주어 모든 클래스의 두 개체를 비교할 수도 있습니다. 값 형식이 기본 제공 형식인 경우 const 변형은 값으로 반환해야 합니다. 오버로드된 변환 연산자는 멤버 메서드여야 합니다. 다른 연산자는 멤버 메서드 또는 전역 메서드일 수 있습니다. 마지막 단계 : 이전 FAQ를 읽지 못한 조커를 찾아 노긴에서 그를 때려. 다차원 배열 액세스 의미 체계를 제공 하려면 예를 들어