我正在使用'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();
}
}
此处FibonacciDynamic
,FibonacciRecursive
&amp; FibonacciSequential
是在头文件中声明的类。现在,这里的主要问题是使用se.fib()
,re.fib
&amp; dy.fib()
函数它给我的错误就像
error C2228: left of '.fib' must have class/struct/union
在没有出现上述错误的情况下,有没有其他方法可以使用合成方法?
如果没有,则可以将它们用作朋友类&amp;在fibonacci
类的成员函数中访问其成员函数?
感谢。
答案 0 :(得分:2)
FibonacciDynamic dy();是方法FibonacciDynamic fibonacci :: dy();
的声明你应该删除括号以使其成为数据成员声明:
...
FibonacciDynamic dy;
...