inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

타입 변환 생성자에 대해서 궁금한 점이 있습니다.

357

yongyong96

작성한 질문수 2

0

안녕하세요 루키스님.

타입 변환 생성자에 대해 궁금한 점이 있어서 여쭤보러 왔습니다.

 

타입 변환 생성자로 인해 Knight(int hp) { ~~ }  , Knight k , k = 3

이런식으로 컴파일러가 자동으로 형변환을 시켜주어서 불리지 말아야 할 타입 변환 생성자가 불리는 것으로 알고 있습니다.

 

그것을 막기 위해 explicit을 써주어서 컴파일러의 자동 형변환을 막는 것이고 위와 같이 대입 연산자를 통해 객체가

생성되는 것을 막는 것이라고 이해했는데요..

 

그렇다면 앞으로 클래스를 만들 때 매개변수에 1개만 존재하는 타입 변환 생성자 같은 경우에는 무조건적으로

explicit 키워드를 붙이는 것이 좋은 것인가요?!

 

반대로 그냥 explicit 키워드를 사용하지 않고 타입 변환 생성자를 의도적으로 사용하는 사례가 있나요?

아무리 봐도 클래스 자료형에 다른 기본 자료형을 대입해서 무엇인가 행위한다는 것은 위험한 일인거 같고 왠만하면

지양하는게 맞다고 생각하는데 제가 생각하고 있는 내용이 확실한지 잘 모르겠습니다. 

 

타입 변환 생성자를 의도적으로 사용하는 사례가 있는지와 타입 변환 생성자 같은 경우에는 왠만하면 explicit을 꼭 붙여주는게

좋은지에 대해 궁금합니다. 

C++

답변 2

0

yongyong96

친절한 답변 감사드립니다!!

0

Rookiss

네 그냥 항상 explicit을 붙여주면 손해보진 않습니다.
관련 내용은 Effective C++ 에서도 나옵니다.
(Effective C++과 Effective Modern C++은 필수로 읽어봐야 할 도서들입니다.
보통 회사를 가면 신입 스터디로 꼭 저 두권을 읽게 합니다.)

그런데 막상 회사를 가면 귀찮아서(?) 그런지
그렇게 일일히 해주는 사람은 별로 없습니다.

visualstudio에서 파일분할관리실습시 설정 문의를 드립니다.

0

559

1

정렬함수 좀 더 확실하게 이해 할 방법이 있을까요?

0

453

1

strcpy() 구현 관련 질문

0

533

1

빌드(망치)를 누르니 이런 오류가 떴습니다. 어떻게 해야 하나요?

0

475

1

클래스 타입의 포인터 질문합니다

0

559

1

입력값을 enum 값에 넣어주는거 이제 막혔나요?

0

503

1

템플릿 특수화 관련 질문

0

389

1

포인터 관련 질문합니다!

0

270

1

Unable to start assembler. Check your settings.

0

848

2

cpu선택

0

548

1

포인터 질문이 있습니다

0

331

1

20:35 에서 구조체 크기에 대한 질문입니다!

0

589

1

iterator 삭제관련

0

415

1

함수 호출을 디스어셈블러로 분석하다가 궁금점이 생겼습니다!

0

316

1

15 분 45초 대 질문

0

317

0

스택 프레임 질문합니다!

2

312

1

오른값 참조 in 게임

0

391

0

동적할당 질문이 있습니다

0

457

1

안녕하세요 메모리에 대해 질문드립니다.

0

312

1

함수객체 의 매개변수

0

365

1

복사생성자

0

439

1

main이나 endl 부분이 주황색으로 표시된건 어떻게 하나요

0

430

1

포인터 실습 강의를 보고 궁금한게 있습니다.

0

359

1

스택 오버플로우

2

801

1