0

次のように「構成」を使用してクラスを作成しています-

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();
    }
}

ここで、FibonacciDynamicFibonacciRecursive&FibonacciSequentialは、ヘッダー ファイルで宣言されているクラスです。ここでの主な問題は、se.fib(), re.fib&dy.fib()関数を使用しているときに次のようなエラーが発生することです

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

エラーを超えずにここで構成アプローチを使用する他の方法はありますか?

そうでない場合、それらをフレンド クラスとして使用し、クラスのメンバー関数でメンバー関数にアクセスすることは可能fibonacciですか?

ありがとう。

4

1 に答える 1

2

フィボナッチダイナミック dy(); メソッド FibonacciDynamic fibonacci::dy(); の宣言です。

かっこを削除して、データ メンバー宣言にする必要があります。

...
FibonacciDynamic dy;
...
于 2014-02-04T05:14:59.070 に答える