Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 재귀
- Algorithm
- 문제풀이
- Tutorial
- 기초
- python
- guide
- Programming
- C#
- 프로그래밍
- UE5
- 파이썬
- 오류
- 시작해요 언리얼 2022
- Basic
- W3Schools
- DP
- dfs
- loop
- w3school
- Unity
- github
- dynamic
- String
- Material
- parameter
- Class
- Unreal Engine 5
- c++
- 백준
Archives
- Today
- Total
행복한 개구리
C++ Classes - Constructors 본문
생산자
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 |