프로그래밍/C++

생성자 오버로딩 (중복사용)

swedu 2023. 2. 20. 00:07
728x90
반응형

2023.02.20  최초 작성

 

 

 

 

생성자도 메서드 (함수)이므로 오버로딩 (중복사용)이 가능하다.

 

#include <iostream>
using namespace std;
class Student {
private:
	// 인스턴스 변수 선언
	int kor;
	int eng;
	int math;
public:
	Student(int kor, int eng, int math)
	{
		cout << "Student(int kor, int eng, int math) 생성자 실행" << endl;
		this->kor = kor;
		this->eng = eng;
		this->math = math;
	}
	Student(int kor, int eng) : Student(kor, eng, 0)
	{
		cout << "Student(int kor, int eng) 생성자 실행" << endl;
	}
	Student(int kor) : Student(kor, 0)
	{
		cout << "Student(int kor) 생성자 실행" << endl;
	}
	Student() : Student(0)
	{
		cout << "Student() 생성자 실행" << endl;
	}
	~Student() {
		cout << "Student 소멸자 실행" << endl;
	}
	void printData() {
		cout << "국어 점수 : " << kor << endl;
		cout << "영어 점수 : " << eng << endl;
		cout << "수학 점수 : " << math << endl;
	}
};

int main() {
	cout << "main 시작" << endl;
	Student s1;
	s1.printData();
	cout << "main 종료" << endl;
	return EXIT_SUCCESS;
}

[실행 화면]

main 시작

Student(int kor, int eng, int math) 생성자 실행

Student(int kor, int eng) 생성자 실행

Student(int kor) 생성자 실행

Student() 생성자 실행

국어 점수 : 0

영어 점수 : 0

수학 점수 : 0

main 종료

Student 소멸자 실행

 

 

 
728x90
반응형

 

728x90
반응형

'프로그래밍 > C++' 카테고리의 다른 글

static 수명이 길다  (0) 2023.02.21
구조체도 클래스이다.  (0) 2023.02.20
클래스와 객체  (0) 2023.02.19
구조체와 포인터 활용  (0) 2023.02.19
인라인 함수  (0) 2023.02.17