[英]Accessing member functions of other classes into member function of `this` class using composition or friend classes
I am writing a class using 'composition' as follows - 我正在使用'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();
}
}
Here, FibonacciDynamic
, FibonacciRecursive
& FibonacciSequential
are classes declared in header files. 这里,
FibonacciDynamic
, FibonacciRecursive
和FibonacciSequential
是在头文件中声明的类。 Now, the main problem here is that while using se.fib()
, re.fib
& dy.fib()
functions it gives me error like 现在,这里的主要问题是,在使用
se.fib()
, re.fib
和dy.fib()
函数时,它给出了我的错误
error C2228: left of '.fib' must have class/struct/union
Is there any other way to use composition approach here without getting above errors? 在没有出现上述错误的情况下,有没有其他方法可以使用合成方法?
If not then is it possible to use them as friend classes & access their member functions in a member function of fibonacci
class? 如果没有,那么是否可以将它们用作朋友类并在
fibonacci
类的成员函数中访问它们的成员函数?
Thanks. 谢谢。
FibonacciDynamic dy(); FibonacciDynamic dy(); is declaration of method FibonacciDynamic fibonacci::dy();
是方法的声明FibonacciDynamic fibonacci :: dy();
you should remove parentheses to make it data member declaration: 你应该删除括号,使其成为数据成员声明:
...
FibonacciDynamic dy;
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.