Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

행복한 개구리

C++ Classes - Constructors 본문

C++/공부내용

C++ Classes - Constructors

HappyFrog 2022. 6. 29. 17:38


 

 

 

생산자

C++에서의 생산자는 클래스의 객체가 생성될 때 자동적으로 호출되는 특별한 메서드입니다.

 

생산자를 생성하기 위해서 소괄호 ( ) 가 따라오는클래스와 같은 이름을 사용합니다:

 

 

예시

#include <iostream>

using namespace std;

class MyClass
{
public:
	MyClass() {
		cout << "Hello World!";
	}
};

int main() {
	MyClass myObj;
	return 0;
}

 

참고: 생산자는 클래스와 같은 이름을 가지며 항상  public 입니다. 그리고 반환값이 없습니다.

 

 

 


생산자 매개변수

생산자는 또한 속성의 초기 설정을 위해 일반 함수들처럼 매개변수를 가질 수 있습니다.

 

아래 예시의 클래스는  brand model  그리고  year  속성과 또 다른 매개변수를 취하는 생산자를 갖고 있습니다. 생산자 내부에서 우리는 생산자의 매개변수( brand = x  와 같이)와 속성을 갖게 설정할 수 있습니다. 우리가 생산자를 호출할 때( 클래스의 객체를 생성함으로써), 우리는 생산자에 대응되는 속성을 같은 값으로 맞춰줄 수 있는 매개변수를 전달할 수 있습니다.

 

 

예시

#include <iostream>

using namespace std;

class Car {	// 클래스
public:	// 접근지정자
	string brand;	// 속성
	string model;
	int year;

	Car(string x, string y, int z) {	// 매개변수가 있는 생산자
		brand = x;
		model = y;
		year = z;
	}
};
int main() {
	// Car 객체 생성하고 서로 다른 값으로 생산자 호출
	Car carObj1("BMW", "X5", 1999);
	Car carObj2("Ford", "Mustang", 1969);

	// 값 출력
	cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
	cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year ;
	return 0;
}

 

함수와 같이 생산자는 클래스 바깥에서 선언될 수 있습니다. 먼저, 클래스 내부에 생산자를 선언하고 그 다음에 클래스 바깥에서 클래스의 이름을 특정하고 범위 지정 연산자  :: 달아주고 생산자의 이름(클래스의 이름과 같은)을 달아주면 됩니다.

 

 

예시

#include <iostream>

using namespace std;

class Car {	// 클래스
public:	// 접근지정자
	string brand;	// 속성
	string model;
	int year;

	Car(string x, string y, int z);	// 생산자 선언
};

int main() {
	// Car 객체 생성하고 서로 다른 값으로 생산자 호출
	Car carObj1("BMW", "X5", 1999);
	Car carObj2("Ford", "Mustang", 1969);

	// 값 출력
	cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
	cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year ;
	return 0;
}

// 생산자 정의
Car::Car(string x, string y, int z) {
	brand = x;
	model = y;
	year = z;
}

 

'C++ > 공부내용' 카테고리의 다른 글

C++ Classes - Encapsulation  (0) 2022.06.29
C++ Classes - Access Specifiers  (0) 2022.06.29
C++ Classes - Class Methods  (0) 2022.06.28
C++ Classes - Classes/Objects  (0) 2022.06.28
C++ Classes - OOP  (0) 2022.06.28