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

这里, FibonacciDynamic, FibonacciRecursive&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 回答