2012-11-06 10 views
0

같은 클래스의 다른 멤버 함수 정의 내에서 클래스의 멤버 함수를 호출하는 방법은 무엇입니까?같은 클래스의 다른 멤버 함수 내에서 클래스 멤버 함수 호출

예를 들어

: 파일 : CPP 파일에 지금 header.h가

class A 
{ 
public: 
void fn1(); 
void fn2(); 
}; 

: function.cpp

방법 항목 :

#include"header.h" 
void A::fn1() 
{ 
//function body for fn1() 

//What is the way to make a call for fn2()? 
//assume I have definition of fn2() above similar to fn1() 

fn2(); 
} 

방법 2 :

#include"header.h" 
A obj_A; 
void A::fn1() 
{ 
//function body for fn1() 

//What is the way to make a call for fn2()? 
//assume I have definition of fn2() above similar to fn1() 

obj_A.fn2(); 
} 

올바른 방법을 명시하십시오.

감사합니다. C++의 초보자입니다.

답변

1

방법 1이 맞습니다.

방법 2가 다른 동작 인 호출을 수행하는 것과 다른 인스턴스에서 메서드를 호출하는 것처럼 보입니다. 이게 당신이 원하는 것일 수도 있지만, 그런 경우는 아닙니다.

첫 번째 방법에 문제가 있습니까?

3

두 버전 모두 올바르지 만 작동이 다릅니다. 첫 번째 버전은 f1이 호출 된 동일한 인스턴스에서 함수를 호출하며 두 번째 버전은 obj_A 인스턴스에서 항상 f2를 호출합니다.

+0

나는 두 가지가 기술적으로 작동한다는 (즉, 유효한 코드를 생성한다) 것이 더 정확할 것이라고 생각하지만, 두 번째 방법은 올바르지 않습니다. 왜냐하면 함수 호출이 다른 객체에서 만들어지기 때문입니다. – ApproachingDarknessFish

+1

@ValekHalfHeart ** 잘못된 것은 아니며 OP에 의해 명확하게 해결되지 않은 의도에 따라 다릅니다. –

+0

원래 호출이'obj_A.fn1(); '이라면 정확히 같은 일을 할 것입니다 (단위 테스트를 흥미롭게 만들 수 있습니다). –

관련 문제