c++ 클래스의 생성자에 대하여

조회수 1185회

안녕하세요. 항상 수고가 많으십니다.

다름이 아니라 explicit 키워드를 보다가

혼자 테스트 해보던 도중의문이 들어 질문드립니다.

코드는

class MyClass { public: MyClass(){} MyClass(int num) : imember2(num){} MyClass(char cnum) : cmember(cnum){} MyClass(double dnum) : dmember(dnum){}

private: int imember; int imember2; double dmember; char cmember;

};

void main() { MyClass temp = 10; //가능 (생성자를 묵시적으로 호출) MyClass temp(10) 과 동일

MyClass test(); //디폴트 생성자 호출

test = 20; //정의한 자료형의 생성자를 타고 클래스의 일부변수가 초기화됨 test = 'z'; // 위와 동일 test = 4568.21; //위와 동일

}

객체를 생성하고 난 뒤 인데 객체에 정의한 타입에 맞는 생성자를 타는 이유는 무엇인가요?

이미 생성하고 난뒤이기 떄문에 복사생성자가 자동으로 생성자 많큼 생긴것 같진 않고

대입연산자가 오버로딩이 된건가요? 구글링해보니 다 객체에서 객체를 넣을때만 설명하고

객체의 멤버변수만 들어가는건 안나와 있어서 질문합니다 ㅠ.ㅠ.

긴글 읽어주셔서 감사합니다. 복받으실꺼에요.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 객체를 생성하고 나면, 생성자가 호출되지 않습니다. 위의 코드는 컴파일되지 않습니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)