inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

code h님의 게시글

code h code h

@hcode

수강평 작성수
6
평균평점
5.0

게시글 10

질문&답변

11:49 경에

즉, 강사님의 의도는 멤버함수는 하나가 정의되어 있고 그것에 인스턴스의 주소를 전달하여 사용한다. -> 그 예로 함수포인터 사용 시 (instance.*fptr1)() 처럼 인스턴스의 주소를 전달해줘야한다. -> static으로 정적함수를 만들면 각 인스턴스의 주소를 전달해 주지 않아도 된다. -> 그 예로 (*fptr2)() 처럼 instance의 주소를 전달해주지 않는 형태(일반함수의 함수포인터)로 사용이 가능하다. 라고 저는 이해했습니다. 복잡한 만큼 제가 이해한 것을 풀어서 적어보았으며 저도 학습자인만큼 확신이 없으므로 맹신하지 않아주셨으면 합니다 ㅠ

좋아요수
2
댓글수
5
조회수
422

질문&답변

11:49 경에

찾아본 바, c에서는 밑의 경우 처럼 * 없이 사용이 가능했지만, c++일 경우 s1.fptr() 로 사용하였을 시 멤버함수를 호출하겠다는 의미가 되어 오류가 발생한다고 합니다. 그렇기 때문에 *를 생략하지 않고 붙여준다는군요. 즉, 밑의 경우 fptr2() 의 경우가 특별한 경우이며 편의를 위해 생략된 것이었습니다. 함수포인터 그대로 (*fptr2)() 인 것을 편의를 위해 생략한 것이었네요(static이기 때문에 인스턴스의 주소를 전달하지 않으므로 가능).

좋아요수
2
댓글수
5
조회수
422

질문&답변

11:49 경에

질문자님의 질문 의도는 '연결'이라는 의미는 알지만 *의 역할을 궁금해 하시는 것 같네요. 밑의 경우는 *를 쓰지않았으니까요. .*이 연결이라고 정해져 있다면 어쩔 수 없는 경우지만요. 물론 저도 몰라서 질문 뒤적뒤적 보고 있는 처지구요 ㅠㅠ

좋아요수
2
댓글수
5
조회수
422

질문&답변

static 멤버변수에서 인스턴스에서 값을 변경하면 멤버변수가 인스턴스에 끼치는 영향

동적으로 인스턴스 생성 시 변수를 생성하는 것이 아니라, static일 경우 정적으로 변수를 생성하게 해주는 기능을 하기 때문인 것 같습니다. 제가 이해한 대로 예를 들자면, class 주민등록증 { static string 발급국가; string 주민등록번호; } string 주민등록증 ::발급국가 = "대한민국"; 이렇게 있을 때 주민등록증 인스턴스를 만들 때 마다 발급국가 멤버변수를 동적으로 생성하는 것이 아니라, 발급국가를 static으로 정적변수화 시켜 하나의 변수로 다루겠다는 의미라고 생각합니다.

좋아요수
2
댓글수
3
조회수
491

질문&답변

something.getValue()=10에 관련된 질문

getValue의 반환형을 보시면 레퍼런스 반환형입니다. 그러므로 '값을 바꾼다'고 생각하시면 됩니다. 물론 해당 m_value는 this->가 감추어져 있기 때문에 something 인스턴스의 멤버변수 m_value 이고요.

좋아요수
3
댓글수
2
조회수
295

질문&답변

const의 위치에 대해 질문이 있습니다!

(1)은 반환값이 const이기 때문에 값 자체로 사용할 때 사용하고 (2)는 const 함수로, 함수 내에서 멤버변수를 변화시키지 않는다는 의미에요.

좋아요수
3
댓글수
2
조회수
830

질문&답변

void setDate()에서 질문이 있습니다.

const는 변치않도록 제약을 걸어줘요. &는 레퍼런스로 이곳에서 레퍼런스로 사용되었으며 복사하지않고 바로 접근하여 값을 사용하게 해줘요(parameter에 인자값을 복사하여 사용하거든요) 즉 복사하는 오버헤드를 없애고 실수로인한 변화를 없애기 위해 const와 &를 사용해요.

좋아요수
0
댓글수
2
조회수
331

질문&답변

va_list

딱히 아무런 내용 없이 소개만 하는 강의 내용이었네욤.

좋아요수
0
댓글수
3
조회수
430