Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用组合类或友元类将其他类的成员函数访问到“this”类的成员函数中_C++_Composition_Friend Class - Fatal编程技术网

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()谢谢。这是有用的。我应该先编写默认构造函数。这不是必需的。如果在其中有参数化构造函数,则默认构造函数是必需的。