C++에서 생성자 오버로딩이란?: 특성 및 유형

게시 됨: 2021-05-24

C++는 업계에서 일반적으로 사용되는 객체 지향 프로그래밍 언어입니다. C++는 1979년 AT & T Bell Laboratories의 Bjarne Stroustrup이 개발한 OOP의 개척자 프로그래밍 언어입니다 . C++에서 가장 자주 사용되는 기능은 클래스를 만드는 것입니다. 클래스 내에서 클래스 멤버(메서드 및 변수)를 만들 수 있습니다.

목차

소개

생성자는 종종 개체를 만들거나 기술적으로 개체의 인스턴스를 만드는 데 사용됩니다. 대부분의 객체 지향 프로그래밍 언어에서도 오버로드됩니다. 많은 프로그래밍 언어와 마찬가지로 생성자의 이름은 클래스의 이름에 따라 미리 결정됩니다. 이것은 단일 생성자가 있을 수 있으므로 명명된 개체를 제한합니다. 여러 생성자가 필요한 시나리오에서는 오버로드 함수를 사용하여 구현합니다.

C++에서 기본 생성자는 매개변수가 없습니다. 해당 기본값을 사용하여 개체 멤버에서 인스턴스화됩니다.

객체 지향 프로그래밍에서 사용되는 오버로딩 개념 에 대한 공정한 아이디어를 가질 수 있습니다 .

건설자

생성자(ctor)는 클래스 기반 객체 지향 프로그래밍에서 객체를 생성하는 데 사용되는 프로그래밍 기술입니다. 새 객체는 특수 목적 서브루틴을 호출하여 생성됩니다. 차례로 클래스의 개체를 초기화하는 클래스의 멤버 함수입니다. 이 메서드는 인수를 받아들입니다. 제공된 매개변수는 기본 생성자와 세트 멤버 변수에서 사용됩니다.

생성자의 특성

생성자는 클래스의 특수 멤버 함수입니다. 다음과 같은 이유로 일반 멤버 함수와 다릅니다.

  • 생성자 멤버는 공개 범위입니다.
  • 클래스를 선언하는 것과 같은 이름입니다.
  • 이름은 대소문자를 구분합니다.
  • 생성자에는 반환 유형이 없습니다.
  • 기본 생성자는 암시적으로 생성됩니다.
  • 객체를 생성할 때 생성자는 자동으로 호출됩니다.
  • 생성자는 암시적으로 상속되지 않습니다.
  • 일반적으로 범위 수정자에 대해 다른 규칙이 있습니다.

생성자의 유형

기본 생성자 – 매개변수가 없고 인수가 없는 생성자. 컴파일러 생성 암시적 생성자입니다.

매개변수화된 생성자 는 인수를 전달할 수 있는 생성자입니다. 인수는 생성된 개체를 초기화합니다. 다른 함수와 마찬가지로 매개변수를 추가하여 매개변수화된 생성자를 생성합니다. 생성자의 본문에 있는 매개변수를 사용하여 개체를 초기화합니다. 이 유형의 생성자는 일반적으로 오버로딩 및 초기 값이 다른 개체의 다양한 데이터 요소를 초기화하는 데 사용됩니다.

복사 생성자 – 동일한 클래스의 다른 개체를 사용하여 개체를 초기화하는 데 사용되는 멤버 함수입니다. 컴파일러는 기본적으로 각 클래스에 대한 복사 생성자를 생성하고 개체 간의 구성원별 복사를 따릅니다.

C++의 생성자

C++에서 생성자는 객체(즉, 클래스의 인스턴스)가 생성할 때 자동으로 호출됩니다.

생성자를 지정하지 않으면 C++ 컴파일러가 기본 생성자를 생성합니다(매개변수가 없고 클래스 이름이 있음).

제대로 작성된 생성자는 결과 개체를 유효한 상태로 유지합니다.

생성자 오버로딩

생성자 오버로딩은 생성자가 다른 생성자를 오버로딩하는 현상입니다.

주어진 생성자는 함수 오버로딩과 유사하게 오버로드될 수 있습니다.

오버로드된 생성자는 클래스의 이름과 같은 이름을 따릅니다. 그러나 여러 주장에서 다릅니다. 객체를 생성하는 동안 전달된 인수 유형에 따라 호출되는 생성자가 결정됩니다.

매개변수가 다른 여러 생성자의 가용성은 프로그래밍에서 다양한 작업을 수행하는 데 도움이 됩니다.

C++의 생성자 오버로딩

C++에는 이름은 같지만 인수 목록이 다른 클래스에 여러 생성자가 있습니다. C++에서 생성자 오버로딩 의 개념은 함수 오버로딩과 매우 유사합니다.

일반적으로 개체에 대해 멤버 변수를 다르게 초기화하려면 클래스에 둘 이상의 생성자를 만들어야 합니다. 생성자를 다르게 작동시키는 기준은 매개변수의 수가 다르거나 위치 지정이 다르거나 매개변수에 대한 데이터 유형이 다른 것입니다.

단일 클래스를 사용하여 객체를 확실하게 생성하고 클래스의 새 인스턴스를 반환하는 생성자는 객체를 생성하지만 객체 풀과 같은 다른 클래스 또는 다른 할당 체계를 사용하여 다른 방식으로 수행할 수 있는 산업에 의해 추상화됩니다.

C++에서 생성자 오버로딩은 어떻게 작동합니까?

다음과 같은 예를 살펴보겠습니다.

코드 는 C++에서 생성자 오버로딩 의 예를 보여줍니다 .

"calculate" 클래스에는 2개의 생성자가 있습니다.

  1. 기본 생성자(매개변수 없음)
  2. 매개변수가 3개인 생성자

그리고 main()에는 두 개의 객체가 생성됩니다.

1. 아웃:

생성될 때 매개변수 없이 기본 생성자를 자동으로 호출합니다. 이는 객체를 생성하는 동안 전달된 매개변수가 없기 때문입니다. 따라서 first(Default Constructor)의 정의와 일치합니다. 이렇게 하면 기본 클래스의 해당 개체에 대한 세 변수 모두에 0 값이 할당됩니다.

2. 아웃2:

생성되면 3개의 매개변수가 있는 생성자를 자동으로 호출합니다. 이는 객체를 생성할 때 1개의 매개변수만 전달되기 때문입니다. 따라서 두 번째 생성자의 정의와 일치합니다. 이렇게 하면 기본 클래스의 해당 개체에 대한 변수에 3개의 값(매개변수로 전달됨)이 할당됩니다.

세계 최고의 대학에서 온라인으로 소프트웨어 엔지니어링 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

결론

C++에서 생성자 오버로딩에 대한 프로그래밍 개념을 이해하는 것은 프로그래머와 시스템 디자이너에게 중요한 기술입니다. 컴퓨터 및 컴퓨팅 관련 프로그램 의 흐름에 있는 학생들은 OOP 개념 및 코드 최적화와 같은 기술과 기술적 신뢰성을 향상시킬 수 있습니다. upGrad 포털 의 리소스와 지식 기반은 이러한 전문가들이 업계 시장에서 경쟁할 수 있는 프로그래밍 전문 지식을 습득하도록 권장합니다. 또한, 전문 네트워킹 및 기술 개발을 탐구할 수 있는 기회를 얻게 됩니다.

전체 스택 소프트웨어 개발에 대해 자세히 알아보려면 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 이그 제 큐 티브 PG 프로그램을 확인하십시오. 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

프로그래밍에서 생성자는 무엇입니까?

프로그래밍에서 생성자는 객체를 초기화하고 다른 간단한 작업을 수행하는 것이 주요 목적인 함수입니다. 생성자는 널리 사용되는 프로그래밍 패러다임인 객체 지향 프로그래밍에 사용됩니다. 따라서 객체 지향 프로그램에는 속성, 메서드 및 이벤트가 있는 객체가 포함됩니다. 객체를 생성하려면 생성자를 사용해야 하고 객체를 사용하려면 인스턴스화해야 합니다.

생성자 오버로딩이란?

생성자 오버로딩이란 이름이 같은 생성자가 두 개 이상 있다는 것을 의미합니다. 생성자는 객체가 생성될 때 호출되는 메서드입니다. 클래스 이름인 모든 생성자에 대해 동일한 이름을 사용해야 합니다. 이것은 다른 수의 인수로 생성자를 선언하여 수행됩니다. 전달할 인수가 없으면 기본 생성자가 호출됩니다. 단일 인수가 있는 경우 단일 인수를 사용하는 생성자가 호출됩니다. 두 개 이상의 인수가 있는 경우 정확히 두 개 이상의 인수를 취하는 생성자가 호출됩니다.

생성자를 사용하여 객체를 초기화하는 방법은 무엇입니까?

생성자는 클래스 초기화와 관련하여 중요합니다. 객체를 생성하고 초기화하는 데 사용되는 특별한 유형의 함수입니다. 때때로 우리는 필요하지 않기 때문에 클래스의 모든 필드를 만들고 싶지 않습니다. 모든 필드를 생성하면 모든 필드를 초기화해야 합니다. 이 경우 기본 생성자를 사용하고 원하는 대로 필드를 초기화합니다. 클래스를 생성할 때 클래스 내부에 하나 이상의 생성자를 생성할 수 있습니다. 따라서 해당 특정 클래스에 대한 개체를 만들 때 설정하려는 인수와 함께 해당 클래스의 생성자를 쉽게 호출할 수 있습니다. 이러한 인수는 생성자가 호출된 클래스의 필드 또는 속성 값으로 설정할 수 있습니다.