It won't hurt to try
[C++/윈도우프로그래밍응용]10. 생성자와 소멸자 본문
생성자
- 생성자는 객체를 생성할때 사용한다.
- 멤버 변수의 값을 초기화한다.
생성자를 사용하는 경우
- 객체동작에 필요한 메모리 공간을 할당하는 경우
- 객체에 필요한 기타 자원을 할당하는 경우
소멸자
- 클래스 이름에 물결(~)표시를 붙여 생성
- 값을 반환하거나 매개 변수를 사용할 수 없음
소멸자를 사용하는 경우
- 객체 소멸과 동시에 메모리를 반환하는 경우
- 객체 소멸과 동시에 OS자원을 반환하는 경우
생성자와 소멸자를 이용한 간단한 예시
예)계산기 - 더하기 기능
main.cpp
//계산기 예제 프로그램
#include <iostream>
#include "calculate.h"
using namespace std;
int main()
{
Calculate cal(1,2);
int result = cal.sum();
cout << result << endl;
}
calculate.h
// CALCULATE_H가 정의되어있지 않은경우 CALCULATE_H를 정의한다. endif까지
#ifndef CALCULATE_H
#define CALCULATE_H
#include <iostream>
using namespace std;
class Calculate
{
int num1, num2;
public:
Calculate(int n1=0, int n2=0); // 생성자
~Calculate();
int sum();
};
#endif // CALCULATE_H
calculate.cpp
#include "calculate.h"
Calculate::Calculate(int n1, int n2) : num1(n1), num2(n2)
{
cout << "Calculate 클래스 생성" << endl;
}
Calculate::~Calculate()
{
cout << "Calculate 클래스 소멸" << endl;
}
int Calculate::sum()
{
return num1 + num2;
}
초기화 리스트(initializer list)
- 멤버 변수를 쉽게 초기화 할수 있는 C++14이후 문법
- Calculate::Calculate(int n1, int n2) : num1(n1), num2(n2)
Calculate::Calculate(int n1, int n2)
{
num1 = n1;
num2 = n2;
cout << "Calculate 클래스 생성" << endl;
}
↓
Calculate::Calculate(int n1, int n2) : num1(n1), num2(n2)
{
cout << "Calculate 클래스 생성" << endl;
}
300x250
300x250
'C++ > 윈도우프로그래밍응용' 카테고리의 다른 글
[C++/윈도우프로그래밍응용]12. 배열 (0) | 2021.10.03 |
---|---|
[C++/윈도우프로그래밍응용]11. 접근제어와 멤버함수 (0) | 2021.09.23 |
[C++/윈도우프로그래밍응용]9. 클래스 작성 (0) | 2021.09.23 |
[C++/윈도우프로그래밍응용]8. 객체지향의 소개 (0) | 2021.09.23 |
[C++/윈도우프로그래밍응용]7. 인수 전달과 반환 (0) | 2021.09.19 |
Comments