C ++中的类前向声明

时间:2013-01-14 21:01:30

标签: c++

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

#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 ;
}

1 个答案:

答案 0 :(得分: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