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()" 함수가 호출되었기 때문입니다.
반응형
'Robotics > C++' 카테고리의 다른 글
C++ 객체생성 new, delete / 멤버 변수 초기화 (0) | 2022.12.05 |
---|---|
C++ 접근 제어자 (Access Modifier) public / protected / private (0) | 2022.12.02 |
C++ 함수 오버로딩 (overloading) (0) | 2022.11.22 |
C++ Reference (참조) (0) | 2022.10.23 |