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

가스

클래스 정의 내에서 포인터 멤버 함수를 어떻게 호출합니까? 내 코드 :

//Myclass.h

struct Booking{
  int src;
  int dest;
  int pos;
};

class MyClass{
public:
    void ExecutePlan();
private:
    struct FlightPlan{
      string name;
      vector<Booking> bookings
    };

    typedef FlightPlan FP;
    FP firstplan;
    FP secondplan;
    void FirstPlan(Booking& book);
    void SecondPlan(Booking& book);
    void Execute(FP& fplan, void (MyClass::*mptr)(Booking& book));
};

// Myclass.cpp
void MyClass::FirstPlan(Booking& book){
// do something with booking
}

void MyClass::SecondPlan(Booking& book){
// do something with booking
}

void MyClass::Execute(FP& fplan, void(MyClass::*mptr)(const FlightPlan& fp)){
    for (int i=0; i<.fplan.bookings.size(); i++){
        cout << "Executing Plan: "<< fplan.name << endl;

       // Problematic line ...
        mptr(bookings[i]);   // <----- can't compile with this
    }
}

void MyClass::Execute(){
// is this the correct design to call this member functions ???

   Execute(firstplan, &MyClass::FirstPlan)   
   Execute(secondplan, &MyClass::SecondPlan)   
}

멤버 함수를 포인터로 받도록 Execute Function을 어떻게 구성 할 수 있습니까?

Pls : C ++의 초보자입니다. 디자인이 이상 할 수도 있습니다!

마이크 시모어

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

멤버 이름과 달리 멤버 포인터는에 암시 적으로 적용되지 않습니다 this. 명시 적이어야합니다.

(this->*mptr)(fplan.bookings[i]);

이 멤버 함수를 호출하는 올바른 디자인입니다 ???

몇 가지 명백한 오류 (예 : ;여기 저기 누락 , 정의에서 const FlightPlan&의미 Booking&하는 위치를 말함 Execute)를 제외하고 나머지 코드는 괜찮아 보입니다. 구체적으로 특별히

Execute(firstplan, &MyClass::FirstPlan)   
Execute(secondplan, &MyClass::SecondPlan)   

멤버 함수 포인터를 얻기위한 올바른 구문입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

템플릿 클래스의 멤버 함수에 포인터를 전달하는 방법은 무엇입니까?

분류에서Dev

다른 중첩 클래스 내에서 일부 둘러싸는 클래스의 중첩 클래스의 함수 포인터 멤버 값을 호출하는 방법은 무엇입니까?

분류에서Dev

C ++ 클래스의 개인 멤버로 일반 함수 포인터를 얻는 방법은 무엇입니까?

분류에서Dev

Derived 내에서 Base의 인스턴스에서 Base의 보호 된 멤버 함수를 호출하는 방법은 무엇입니까?

분류에서Dev

C ++에서 포인터 멤버 변수의 생성을 호출하는 방법은 무엇입니까?

분류에서Dev

C ++에서 포인터 멤버 변수의 생성을 호출하는 방법은 무엇입니까?

분류에서Dev

클래스의 멤버 함수에서 클래스 인스턴스를 반환하는 방법은 무엇입니까?

분류에서Dev

멤버 클래스에서 함수를 호출하는 방법은 무엇입니까?

분류에서Dev

C ++에는 클래스 멤버 개체의 멤버 함수에 대한 포인터를 전달하는 정의 된 방법이 있습니까?

분류에서Dev

다른 클래스의 정적 멤버 함수에서 개인 정적 변수에 액세스하는 방법은 무엇입니까?

분류에서Dev

외부 클래스에서 내부 클래스의 함수를 호출하는 방법은 무엇입니까?

분류에서Dev

포인터 구조체의 멤버 변수에 액세스하는 방법은 무엇입니까?

분류에서Dev

클래스에 대한 포인터로 함수를 호출하는 방법은 무엇입니까?

분류에서Dev

멤버 friend 함수를 클래스의 다른 멤버를 사용하지 않고 포인터를 사용하여 개인 데이터 멤버 클래스에 액세스 할 수있는 이유는 무엇입니까?

분류에서Dev

클래스 정적 멤버에서 정적 변수를 참조하는 방법은 무엇입니까?

분류에서Dev

Javascript에서 클래스 멤버를 수정하는 방법은 무엇입니까?

분류에서Dev

A 클래스의 상수가 아닌 공용 멤버 m에 대한 액세스를 상수가 아닌 멤버로 포함하는 다른 클래스 B에 대한 const로 제한하는 방법은 무엇입니까?

분류에서Dev

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

분류에서Dev

리플렉션을 사용하여 Java 클래스의 공용 멤버에서 메서드를 호출하는 방법은 무엇입니까?

분류에서Dev

C ++에서 가장 좋은 방법으로 클래스 멤버 벡터의 요소를 반복하는 방법은 무엇입니까?

분류에서Dev

std :: function 또는 Boost를 사용하여 C ++에서 클래스 멤버 포인터를 구현하는 방법은 무엇입니까?

분류에서Dev

std :: function 또는 Boost를 사용하여 C ++에서 클래스 멤버 포인터를 구현하는 방법은 무엇입니까?

분류에서Dev

멤버 매개 변수에 대한 포인터가있는 템플릿 클래스를 전문화하는 방법은 무엇입니까?

분류에서Dev

멤버 함수가 서로 의존하는 클래스 디자인을 피하는 방법은 무엇입니까?

분류에서Dev

특성의 모든 하위 클래스의 멤버 메서드를 호출하는 방법은 무엇입니까?

분류에서Dev

클래스 멤버 자체 인 포인터를 통해 멤버 함수를 호출하는 방법

분류에서Dev

<a /> 또는 Blazor의 <NavLink />에 대한 href 속성에 클래스 멤버를 데이터 바인딩하는 방법은 무엇입니까?

분류에서Dev

typescript 클래스의 react 컴포넌트 안에 정의 된 함수를 호출하는 방법은 무엇입니까?

분류에서Dev

Java에서 클래스의 멤버 메서드를 사용하여 파일에서 데이터를 읽는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    템플릿 클래스의 멤버 함수에 포인터를 전달하는 방법은 무엇입니까?

  2. 2

    다른 중첩 클래스 내에서 일부 둘러싸는 클래스의 중첩 클래스의 함수 포인터 멤버 값을 호출하는 방법은 무엇입니까?

  3. 3

    C ++ 클래스의 개인 멤버로 일반 함수 포인터를 얻는 방법은 무엇입니까?

  4. 4

    Derived 내에서 Base의 인스턴스에서 Base의 보호 된 멤버 함수를 호출하는 방법은 무엇입니까?

  5. 5

    C ++에서 포인터 멤버 변수의 생성을 호출하는 방법은 무엇입니까?

  6. 6

    C ++에서 포인터 멤버 변수의 생성을 호출하는 방법은 무엇입니까?

  7. 7

    클래스의 멤버 함수에서 클래스 인스턴스를 반환하는 방법은 무엇입니까?

  8. 8

    멤버 클래스에서 함수를 호출하는 방법은 무엇입니까?

  9. 9

    C ++에는 클래스 멤버 개체의 멤버 함수에 대한 포인터를 전달하는 정의 된 방법이 있습니까?

  10. 10

    다른 클래스의 정적 멤버 함수에서 개인 정적 변수에 액세스하는 방법은 무엇입니까?

  11. 11

    외부 클래스에서 내부 클래스의 함수를 호출하는 방법은 무엇입니까?

  12. 12

    포인터 구조체의 멤버 변수에 액세스하는 방법은 무엇입니까?

  13. 13

    클래스에 대한 포인터로 함수를 호출하는 방법은 무엇입니까?

  14. 14

    멤버 friend 함수를 클래스의 다른 멤버를 사용하지 않고 포인터를 사용하여 개인 데이터 멤버 클래스에 액세스 할 수있는 이유는 무엇입니까?

  15. 15

    클래스 정적 멤버에서 정적 변수를 참조하는 방법은 무엇입니까?

  16. 16

    Javascript에서 클래스 멤버를 수정하는 방법은 무엇입니까?

  17. 17

    A 클래스의 상수가 아닌 공용 멤버 m에 대한 액세스를 상수가 아닌 멤버로 포함하는 다른 클래스 B에 대한 const로 제한하는 방법은 무엇입니까?

  18. 18

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

  19. 19

    리플렉션을 사용하여 Java 클래스의 공용 멤버에서 메서드를 호출하는 방법은 무엇입니까?

  20. 20

    C ++에서 가장 좋은 방법으로 클래스 멤버 벡터의 요소를 반복하는 방법은 무엇입니까?

  21. 21

    std :: function 또는 Boost를 사용하여 C ++에서 클래스 멤버 포인터를 구현하는 방법은 무엇입니까?

  22. 22

    std :: function 또는 Boost를 사용하여 C ++에서 클래스 멤버 포인터를 구현하는 방법은 무엇입니까?

  23. 23

    멤버 매개 변수에 대한 포인터가있는 템플릿 클래스를 전문화하는 방법은 무엇입니까?

  24. 24

    멤버 함수가 서로 의존하는 클래스 디자인을 피하는 방법은 무엇입니까?

  25. 25

    특성의 모든 하위 클래스의 멤버 메서드를 호출하는 방법은 무엇입니까?

  26. 26

    클래스 멤버 자체 인 포인터를 통해 멤버 함수를 호출하는 방법

  27. 27

    <a /> 또는 Blazor의 <NavLink />에 대한 href 속성에 클래스 멤버를 데이터 바인딩하는 방법은 무엇입니까?

  28. 28

    typescript 클래스의 react 컴포넌트 안에 정의 된 함수를 호출하는 방법은 무엇입니까?

  29. 29

    Java에서 클래스의 멤버 메서드를 사용하여 파일에서 데이터를 읽는 방법은 무엇입니까?

뜨겁다태그

보관