본문 바로가기

카테고리 없음

[C++] 생성자 오버로딩

class calc
{
public :
	
	calc()
	{
		cout << "calc()" << endl;
	}

	calc(int a)
	{
		cout << "calc(int a)" << endl;
	}
};

void main()
{
	calc cal;
	calc cal_(2);
}

프로그램 실행화면


생성자도 오버로딩이 가능하다. calc(), calc(int a)로 선언해 주었다. 상황에 맞게 여러 생성자를 준비해 놓는다면 조금 더 편하게 사용할 수 있을 것이다.


너무 많은 생성자와 또 생성자 안에 많은 프로그램이 들어가게 되면 좋지는 않다. 내 생각에 생성자 안에서는 초기화 이외의 작업은 하지 않는 것이 좋은 것 같다.


생성자에다가 많은 프로그램을 구현해 놓으면 다른 사람이 유지보수할 때 조금 애를 먹을 수 있기 때문이다. 위의 예제와 같이 cout 정도나 DataBase 등록 같은 것들은 해도 된다고 내 스스로는 규칙을 정해두고 있다.