C++ 使用组合类或友元类将其他类的成员函数访问到“this”类的成员函数中
我正在用“作文”写一节课,如下所示:C++ 使用组合类或友元类将其他类的成员函数访问到“this”类的成员函数中,c++,composition,friend-class,C++,Composition,Friend Class,我正在用“作文”写一节课,如下所示: class fibonacci { private: FibonacciDynamic dy(); FibonacciRecursive re(); FibonacciSequential se(); int count; public: fibonacci(int a):count(a){}; void disp(); }; void fibonacci::disp() { if(count <
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();
}
}
类斐波那契
{
私人:
fibonaccidy();
fibonaccire();
fibonaccise();
整数计数;
公众:
斐波那契(inta):计数(a){};
void disp();
};
void fibonacci::disp()
{
如果(计数<20)
{
se.fib();
}
否则,如果(计数<50)
{
re.fib();
}
其他的
{
dy.display();
}
}
这里,FibonacciDynamic
,FibonacciRecursive
和FibonacciSequential
是在头文件中声明的类。现在,这里的主要问题是,当使用se.fib()
,re.fib
&dy.fib()
函数时,它会给我如下错误
错误C2228.“.fib”的左侧必须具有类/结构/联合
有没有其他方法可以在这里使用合成方法而不出现上述错误
如果没有,那么是否可以将它们用作朋友类,并在fibonacci
类的成员函数中访问它们的成员函数
谢谢。fibonaccidy();是方法FibonacciDynamic fibonacci::dy()的声明
您应该删除括号以使其成为数据成员声明:
...
FibonacciDynamic dy;
...
“se”应该是object。FibonacciSequential=新的FibonacciSequential()谢谢。这是有用的。我应该先编写默认构造函数。这不是必需的。如果在其中有参数化构造函数,则默认构造函数是必需的。