산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C++ 생성자

C++ 생성자

이 자습서에서는 도움말 예제를 통해 C++ 생성자와 해당 유형에 대해 알아봅니다.

생성자는 개체가 생성될 때 자동으로 호출되는 특수한 유형의 멤버 함수입니다.

C++에서 생성자는 클래스와 이름이 같으며 반환 유형이 없습니다. 예를 들어,

class  Wall {
  public:
    // create a constructor
    Wall() {
      // code
    }
};

여기서 함수 Wall() Wall 클래스의 생성자입니다. . 생성자

<시간>

C++ 기본 생성자

매개변수가 없는 생성자를 기본 생성자라고 합니다. . 위의 예에서 Wall() 기본 생성자입니다.

<시간>

예제 1:C++ 기본 생성자

// C++ program to demonstrate the use of default constructor

#include <iostream>
using namespace std;

// declare a class
class  Wall {
  private:
    double length;

  public:
    // default constructor to initialize variable
    Wall() {
      length = 5.5;
      cout << "Creating a wall." << endl;
      cout << "Length = " << length << endl;
    }
};

int main() {
  Wall wall1;
  return 0;
}

출력

Creating a Wall
Length = 5.5

여기서 wall1 개체가 생성되면 Wall() 생성자가 호출됩니다. 이것은 길이를 설정합니다. 5.5에 대한 개체의 변수 .

참고: 클래스에 생성자를 정의하지 않은 경우 C++ 컴파일러는 매개변수 없이 빈 코드로 기본 생성자를 자동으로 생성합니다.

<시간>

C++ 매개변수화된 생성자

C++에서 매개변수가 있는 생성자를 매개변수화된 생성자라고 합니다. 이것은 회원 데이터를 초기화하는 데 선호되는 방법입니다.

<시간>

예제 2:C++ 매개변수화된 생성자

// C++ program to calculate the area of a wall

#include <iostream>
using namespace std;

// declare a class
class Wall {
  private:
    double length;
    double height;

  public:
    // parameterized constructor to initialize variables
    Wall(double len, double hgt) {
      length = len;
      height = hgt;
    }

    double calculateArea() {
      return length * height;
    }
};

int main() {
  // create object and initialize data members
  Wall wall1(10.5, 8.6);
  Wall wall2(8.5, 6.3);

  cout << "Area of Wall 1: " << wall1.calculateArea() << endl;
  cout << "Area of Wall 2: " << wall2.calculateArea();

  return 0;
}

출력

Area of Wall 1: 90.3
Area of Wall 2: 53.55

여기에서 매개변수화된 생성자를 만들었습니다. Wall() 2개의 매개변수가 있습니다:double lendouble hgt . 이 매개변수에 포함된 값은 멤버 변수 length를 초기화하는 데 사용됩니다. 및 높이 .

Wall 객체를 생성할 때 클래스에서 멤버 변수의 값을 인수로 전달합니다. 이에 대한 코드는 다음과 같습니다.

Wall wall1(10.5, 8.6);
Wall wall2(8.5, 6.3);

이렇게 초기화된 멤버 변수로 이제 calculateArea()로 벽의 면적을 계산할 수 있습니다. 기능.

<시간>

C++ 복사 생성자

C++의 복사 생성자는 한 개체의 데이터를 다른 개체로 복사하는 데 사용됩니다.

<시간>

예시 3:C++ 복사 생성자

#include <iostream>
using namespace std;

// declare a class
class Wall {
  private:
    double length;
    double height;

  public:

    // initialize variables with parameterized constructor
    Wall(double len, double hgt) {
      length = len;
      height = hgt;
    }

    // copy constructor with a Wall object as parameter
    // copies data of the obj parameter
    Wall(Wall &obj) {
      length = obj.length;
      height = obj.height;
    }

    double calculateArea() {
      return length * height;
    }
};

int main() {
  // create an object of Wall class
  Wall wall1(10.5, 8.6);

  // copy contents of wall1 to wall2
  Wall wall2 = wall1;

  // print areas of wall1 and wall2
  cout << "Area of Wall 1: " << wall1.calculateArea() << endl;
  cout << "Area of Wall 2: " << wall2.calculateArea();

  return 0;
}

출력

Area of Wall 1: 90.3
Area of Wall 2: 90.3

이 프로그램에서 우리는 Wall의 한 객체의 내용을 복사하기 위해 복사 생성자를 사용했습니다. 다른 사람에게 수업. 복사 생성자의 코드는 다음과 같습니다.

Wall(Wall &obj) {
  length = obj.length;
  height = obj.height;
}

이 생성자의 매개변수에는 Wall의 개체 주소가 있습니다. 수업.

그런 다음 obj의 변수 값을 할당합니다. 객체를 복사 생성자를 호출하는 객체의 해당 변수로 변경합니다. 개체의 내용이 복사되는 방식입니다.

main()에서 , 그런 다음 두 개의 객체 wall1을 만듭니다. 및 벽2 그런 다음 wall1의 내용을 복사합니다. wall2로 :

// copy contents of wall1 to wall2
Wall wall2 = wall1;

여기서 wall2 객체는 wall1의 주소를 전달하여 복사 생성자를 호출합니다. 객체를 인수로 예:&obj = &wall1 .

참고 :생성자는 주로 객체를 초기화하는 데 사용됩니다. 또한 개체가 생성될 때 기본 코드를 실행하는 데 사용됩니다.


C 언어

  1. C# 생성자
  2. C# 생성자 오버로딩
  3. C++ 데이터 유형
  4. C++ 연산자
  5. C++ 주석
  6. C++ 클래스 템플릿
  7. 자바 생성자
  8. 자바 - 생성자
  9. C++ 개요
  10. C++ 상수/리터럴