A
클래스에는 void foo()
메서드가 있습니다. 나는 &A::foo
을 사용하여 foo()
에 대한 포인터를 얻을 수 있지만,이 포인터는 인스턴스화 된 객체가 아니라 클래스 유형에 의존하는 것으로 보입니다. 두 개의 객체 a1
과 a2
이 A
인 경우 메서드가 이고 포인터가 a2
이고 포인터, 멤버 함수 포인터 또는 포인터 주소를 사용하면 어떻게 차이가 있습니까? 기본적으로 void foo()
메서드를 참조하는 포인터를 a1
개체 내에서 가져올 수 있기를 원합니다. void foo()
메서드를 참조하는 포인터와 다른 개체는 a2
안에 있습니다. 고맙습니다.멤버 함수 포인터 비교
-1
A
답변
0
나는 당신이 그들을 다르게 만들 수 있다고 생각하지 않는다. a1-> foo()와 a2-> foo()는 기본적으로 같습니다.
0
저는 여러분이 여기에서 객체 (또는 클래스의 인스턴스)에 대한 개념을 혼동하고 있다고 생각합니다. 객체는 클래스의 청사진과 같습니다. 각 개체마다 다른 멤버/멤버 함수를 사용할 수 없습니다..
예 :
class A
{
int result;
public:
void add(int x, int y)
{
this->result = x + y;
}
}
클래스 A의 모든 개체에는 멤버 변수 결과 및 멤버 함수 add()
이 포함됩니다. 그래서 obj1->add()
과 obj2->add()
은 객체 자체가 서로 다른 속성을 갖더라도 동일한 add()
함수를 호출합니다.
obj1->add(1,2)
은 4 것으로 obj2->result
초래 3,
obj2->add(1,3)
obj1->result
될 것이다.
관련 문제
- 1. C++ 멤버 함수 포인터 비교
- 2. 함수 포인터 비교 연산자
- 3. 템플릿 멤버 함수 포인터
- 4. C++ 멤버 함수 포인터
- 5. 다형 멤버 함수 포인터
- 6. 부스트 멤버 함수 포인터
- 7. C++ 멤버 함수 포인터
- 8. 클래스 멤버 함수 포인터
- 9. 일반 멤버 함수 포인터 도움말
- 10. 멤버 함수 포인터 및 상속
- 11. 혼합 코드 - 함수 멤버 포인터
- 12. 포인터 - 전용 멤버 함수 배열
- 13. 기본 인수가있는 멤버 함수 포인터
- 14. 멤버 함수에서 함수 포인터 전달
- 15. 파생 클래스의 멤버 함수 포인터
- 16. 함수 포인터 (클래스 멤버 함수)의 HashMap
- 17. 멤버 함수 포인터, 비 멤버 함수의 argoument로 함수 전달
- 18. C++ 함수 정적 포인터 개체의 멤버 함수 포인터
- 19. 부모 클래스의 멤버 함수에 대한 함수 포인터
- 20. 템플릿 매개 변수로 템플릿 멤버 함수 포인터
- 21. 클래스 멤버 변수가있는 C++ 함수 포인터 맵
- 22. 포트란 : 추상 멤버 함수 포인터 function
- 23. std :: map of 템플릿 멤버 함수 포인터
- 24. 오류 멤버 함수 포인터 unique_ptr 사용하여
- 25. 템플릿 정적 멤버 함수 포인터 초기화
- 26. C++의 멤버 함수에 대한 함수 포인터
- 27. 호출 포인터 - 투 - 멤버 함수 C++
- 28. std 맵에 저장된 멤버 함수 포인터 호출
- 29. 역 참조 upcasted 멤버 함수 포인터
- 30. (단순?) 포인터 멤버 함수 질문 비 정적에
두 개의 클래스 인스턴스가 다른 멤버 함수를 갖는 이유는 무엇입니까? –
함수 + 바인드를 찾는 것처럼 들리 겠지만 질문에 더 자세한 내용이 없으면 확실하게 말하기는 어렵습니다. –
사실 그들은 그렇지 않습니다. 둘 다'a1-> foo()'와'a2-> foo()'를 할 수 있도록 같은 멤버 함수'void foo()'를 가지고 있습니다. – baboulinet