Robotics/C++
C++ 생성자 (Constructor)
Jeonggeun
2022. 12. 5. 23:42
728x90
- 객체 생성 시 자동으로 호출되는 함수
- 클래스의 이름과 이름이 똑같음
// my_class.hpp
#include <iostream>
class MyClass
{
public:
MyClass(); // 생성자
void Print();
private:
uint16_t mVar;
};
헤더 파일에 "MyClass"라는 이름을 가진 클래스를 선언하였습니다. 그리고 클래스와 똑같은 이름으로 "MyClass()"라는 함수를 public으로 선언하였습니다.
여기서 클래스 이름과 똑같은 이름을 가진 "MyClass()" 함수를 생성자(Contructor)라고 합니다.
// my_time.cpp
#include "my_class.hpp"
MyClass::MyClass() // 생성자
{
std::cout << "Constructor" << std::endl;
}
void MyClass::Print() // 일반함수
{
std::cout << "Print" << std::endl;
}
int main()
{
MyClass my_class;
my_class.Print();
return 0;
}
위의 예제를 실행하면 아래와 같은 결과가 출력됩니다.
// 실행결과
Constructor
Print
일반 함수는 (당연하겠지만) 함수를 호출하는 코드를 작성해야 함수가 실행됩니다.
my_class.Print();
하지만, 생성자는 객체를 생성하면 자동으로 호출됩니다.
MyClass my_class;
위의 결과에서 "Contructor" 다음에 "Print"가 출력된 이유는,
"my_class" 객체가 생성되고, 그다음에 "my_class.Print()" 함수가 호출되었기 때문입니다.
반응형