본문 바로가기

[열강C++]public 생성자, private 생성자.

반응형

생성자는 기본적으로 public에 있어야 한다. 그래야 main문에 접근이 가능하기 때문이다.

   

Person p ("KIM" , "013-333-5555" , 22) //객체 생성.

Person 클래스의 객체를 생성하는데 위의 3가지의 인자를 받을 수 있는 생성자를 호출해서 객체를 생성하겠다라는 말. 그리고 p라는 이름을 붙여주겠다.

   

Person p(); //객체 생성 아님. >> 함수 선언.

Person p; //객체 생성.

   

생성자가 필요한 이유 ~ 정보은닉을 하기 위해 private영역에 변수를 선언해 놓으면 main문에서 접근하는 것이 불가능하다. 그래서 public영역에 생성자를 만들어 놓으면 main문에서 생성자를 통해서 변수의 값에 간접적으로 접근할 수 있다.

   

폴트 생성자

생성자가 하나도 정의되어 있지 않은 경우

자동으로 삽입이 되는 생성자

void형.

   

   

   

생성자가 하나라도 있다면 디폴트 생성자는 생기지 않는다. 생성자를 두 개 만들고 싶다면 디폴트 생성자를 하나 더 만들어주면 된다. 생성자를 두 개 만들어줘도 문제되지 않는다. 생성자도 함수이니까~ 즉 함수 오버로딩된 상태이다 . 매개변수의 타입이나 갯수가 다르기 때문이다.

객체가 생성될 때마다 각각의 생성자를 호출할 것이다.

생성자는 디폴트 매개변수의 설정도 가능하다.

 

디폴트 매개변수의 설정을 나타낸다.

첫번째 생성자를 읽어보면 생성자 호출시 첫번째 인자 , 두번째 인자가 전달되지 않으면 첫번째 인자로 0이 들어온 것으로 두번째 인자로 0이 들어온 것으로 간주를 하겠다라는 뜻.

   

main문에 p2객체 생성하는 것을 보면 인자 값을 받지 않는 객체를 생성하고 있으므로 프로그램을 실행시켜보면

10,20

0,0

   

이렇게 출력된다.

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

반응형
-->