inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

TextRPG #3

함수 인자 관련 질문있습니다.

266

은정

작성한 질문수 3

0

안녕하세요. 이번 연습 문제를 구현하다보니 문득 든 궁금증인데 검색하기가 어려워 질문 남깁니다.

이전 시간에 배웠던 내용과는 별개로 함수 인자(매개 변수)에 대한 사용법 관련 질문인데요..

 

질문 1) 예시로 CreatePlayer 함수를 구현할 때 반환값으로 구조체를 보내기보단, 매개 변수에 그릇(playerInfo)을 같이 보내 그 그릇에 담는 식을 사용하셨는데 이러한 이유가 있을까요?

(개인의 스타일인지.. 아니면 반환값으로 보내는 것보다 더 효율적인건지..이유가 궁금합니더..)

 

질문 2) 함수를 만들 때 반환값을 지정해줘야 하는 경우는 알잘딱 해야하는 부분일까요? 아니면 지정된 암묵적인 룰?같은 것이 있을까요?

(질문 1같은 상황이 발생했을 때 어떠한 기준으로 판단을 지어야 하는지 궁금합니다..)

 

함수를 만들 때 판단이 잘 서지않아 이게 경험 차이 때문인지 아니면 진짜 그냥 헷갈리는건지 구분이 안 서서 질문드립니당 ㅠ.ㅠ

C++

답변 1

1

Rookiss

1)
구조체를 그냥 복사해서 return하기엔 복사 비용이 많이 들기 때문입니다.
(물론 컴파일러에 따라 복사하지 않고, 원본에 바로 채우게 만들어지는 경우도 있긴 합니다)
간단한 Vector 정도라면 몰라도 struct 복사 비용이 커진다면
이런 식으로 struct의 참조값을 받아서 채워주는 식으로 만들게 됩니다.

2)
암묵적인 룰 까진 없지만, 성능에 신경을 쓰면서
너어어어어어무 방대한 복사는 피하는게 좋겠죠!

-> 하지만 이는 먼 훗날 신경쓰시고 그냥 아무렇게든 일단 돌아가게 만들면 됩니다.

0

은정

감사합니다 ㅠㅠ 아무래도 복사랑 참조 차이를 공부하고나서 만들다보니 뭔..가 구조체 복사 버전을 만들고 질문하면서도 찝찝한 기분이 들었었는데 은연중에 생각하고 있었나 봅니다,. 완벽하게 해결됐습니다!! 👍👍👍

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

0

548

1

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

0

445

1

strcpy() 구현 관련 질문

0

519

1

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

0

461

1

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

0

551

1

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

0

502

1

템플릿 특수화 관련 질문

0

387

1

포인터 관련 질문합니다!

0

267

1

Unable to start assembler. Check your settings.

0

840

2

cpu선택

0

544

1

포인터 질문이 있습니다

0

330

1

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

0

589

1

iterator 삭제관련

0

410

1

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

0

315

1

15 분 45초 대 질문

0

312

0

스택 프레임 질문합니다!

2

310

1

오른값 참조 in 게임

0

388

0

동적할당 질문이 있습니다

0

454

1

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

0

310

1

함수객체 의 매개변수

0

365

1

복사생성자

0

439

1

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

0

426

1

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

0

358

1

스택 오버플로우

2

795

1