컴포지션 또는 친구 클래스를 사용하여 다른 클래스의 멤버 함수를`this '클래스의 멤버 함수로 액세스

유비

다음과 같이 '구성'을 사용하여 클래스를 작성하고 있습니다.

class fibonacci
{
private:
    FibonacciDynamic dy();
    FibonacciRecursive re();
    FibonacciSequential se();
    int count;
public:
    fibonacci(int a):count(a){};
    void disp();
};

void fibonacci::disp()
{
    if(count < 20)
    {
        se.fib();
    }
    else if(count < 50)
    {
        re.fib();
    }
    else
    {
        dy.display();
    }
}

여기서 FibonacciDynamic, FibonacciRecursiveFibonacciSequential헤더 파일에 선언 된 클래스입니다. 자, 여기서 주요 문제는 se.fib(), re.fib& dy.fib()기능 을 사용하는 동안 오류가 발생한다는 것입니다.

error C2228: left of '.fib' must have class/struct/union

위의 오류없이 구성 접근 방식을 사용하는 다른 방법이 있습니까?

그렇지 않다면 친구 클래스로 사용하고 클래스의 멤버 함수에서 멤버 함수에 액세스 할 수 fibonacci있습니까?

감사.

AlexT

FibonacciDynamic dy (); 메서드 FibonacciDynamic fibonacci :: dy ();의 선언입니다.

데이터 멤버 선언을하려면 괄호를 제거해야합니다.

...
FibonacciDynamic dy;
...

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관