인프런 커뮤니티 질문&답변

it09kim님의 프로필 이미지

작성한 질문수

홍정모의 따라하며 배우는 C++

8.7 this 포인터와 연쇄 호출

이 강의에 대한 질문은 아닌데 궁금한거 하나 질문드립니다

해결된 질문

작성

·

149

1

class Simple

{

private:

int m_id;

public:

Simple(int id)

{

setID(id);

}

void setID(int id) { m_id = id };

int getID() { return m_id };

};

에서 void setID랑 int getID 함수가 Simple 생성자 보다 밑에있는데

public:

Simple(int id)

{

setID(id);

}

이렇게 더 밑에있는 setID(id)를 불러올수있나요?

답변 2

3

홍정모님의 프로필 이미지
홍정모
지식공유자

C언어에서 C++로 넘어오는 과정이신 것 같네요.

C언어에서는 컴파일러가 코드를 위에서 아래로 내려오면서 컴파일하는 방식이기 때문에 코드 순서로 볼 때 미리 선언하지 않은 함수를 사용하려고 하면 알 수 없다면서 오류가 발생했습니다.

C++에서는 컴파일러가 클래스의 멤버 함수들이 어떤 것들이 있는지 먼저 쭉 훑어보고 표를 만들어 놓은 후에 그 다음 컴파일 단계를 진행하기 때문에 코드에서 멤버 함수의 순서가 뒤에 있는 멤버 함수들도 호출해서 사용하실 수 있습니다.

1

it09kim님의 프로필 이미지
it09kim
질문자

빠르고 정확한 답변 감사합니다!

it09kim님의 프로필 이미지

작성한 질문수

질문하기