- 정의
인스턴스가 호출될 때 호출되는 맴버함수를 의미함. 클래스와 이름을 동일하게 지어줌.
생성자는 반환값이 없음. 주로 객체가 생성될 때 객체의 멤버변수를 초기화하는 용도로 사용됨.
- 생성자를 정의하는 일반적 방법
클래스명() { 실행문 } |
소멸자를 정의하는 일반적 방법
~클래스명() { 실행문 } |
- 생성자 예제
#include<iostream> using namespace std; class Subject { private: int korean; int english; int math; public: int sum; int average;
void functionSum(); void functionAverage(); Subject();//생성자 ~Subject();//소멸자 }; Subject::Subject() { korean=100; english=90; math=70; } Subject::~Subject() { cout<<"소멸자가 호출되었습니다."<<endl; } void Subject::functionSum() { sum=korean+english+math; } void Subject::functionAverage() { average=sum/3; } int main() { Subject myExamResult; myExamResult.functionSum(); myExamResult.functionAverage(); cout<<"총점: "<<myExamResult.sum<<endl; cout<<"평균: "<<myExamResult.average<<endl; } |
- 매개변수가 있는 생성자 예제
#include <iostream> using namespace std; class Subject { private: int korean; int english; int math; public: int sum; int average;
void functionSum(); void functionAverage(); Subject(int scoreOfKorean, int scoreOfEnglish, int scoreOfMath);//생성자 ~Subject();//생성자 }; Subject::Subject(int scoreOfKorean, int scoreOfEnglish, int scoreOfMath) { korean=scoreOfKorean; english=scoreOfEnglish; math=scoreOfMath; } Subject::~Subject() { cout<<"소멸자가 호출되었습니다."<<endl; } void Subject::functionSum() { sum=korean+english+math; } void Subject::functionAverage() { average=sum/3; } int main() { Subject myExamResult(100,90,70); Subject hisExamResult(90,80,70);
myExamResult.functionSum(); myExamResult.functionAverage();
hisExamResult.functionSum(); hisExamResult.functionAverage();
cout<<"myExamResult의 총점"<<myExamResult.sum<<endl; cout<<"myExamResult의 평균"<<myExamResult.average<<endl; cout<<"hisExamResult의 총점"<<hisExamResult.sum<<endl; cout<<"hisExamResult의 평균"<<hisExamResult.average<<endl; return 0; } |