使用组合或朋友类将其他类的成员函数访问到`this`类的成员函数中

时间:2014-02-04 04:58:12

标签: c++ composition friend-class

我正在使用'composition'编写一个类,如下所示 -

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&amp; FibonacciSequential是在头文件中声明的类。现在,这里的主要问题是使用se.fib()re.fib&amp; dy.fib()函数它给我的错误就像

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

在没有出现上述错误的情况下,有没有其他方法可以使用合成方法?

如果没有,则可以将它们用作朋友类&amp;在fibonacci类的成员函数中访问其成员函数?

感谢。

1 个答案:

答案 0 :(得分:2)

FibonacciDynamic dy();是方法FibonacciDynamic fibonacci :: dy();

的声明

你应该删除括号以使其成为数据成员声明:

...
FibonacciDynamic dy;
...