1

如何正确转发声明类?如果我尝试这个,它不会编译:

#include<iostream>
#include<conio.h>

class B ;

class A
{
    public:
    B returnB()
    {
        return B() ;
    }
} ;

class B
{
    public:
    A returnA()
    {
        return A() ;
    }
} ;

int main(void)
{

    getch() ;
    return 0 ;
}
4

1 回答 1

2

有时在某些情况下,您必须在类之外定义函数:

class B;

class A
{
public:
    B returnB();
};

class B
{
public:
    A returnA();
};

B A::returnB()
{
    return B();
}

A B::returnA()
{
    return A();
}

通常定义(实现)放在一个单独的 *.cpp 文件中。如果它在标题中,那么它必须是inline.

于 2013-01-14T21:06:50.517 回答