【发布时间】:2015-08-02 05:54:24
【问题描述】:
class C2; //Forward Declaration
class C1
{
int status;
public:
void set_status(int state);
void get_status(C2 y);
};
class C2
{
int status;
public:
void set_status(int state);
friend void C1::get_status(C2 y);
};
//Function Definitions
void C1::set_status(int state)
{
status = state;
}
void C2::set_status(int state)
{
status = state;
}
void C1::get_status(C2 y) //Member function of C1
{
if (y.status | status)
cout<<" PRINT " <<endl;
}
倒数第二行的y.status 显示错误:
C2::status 不可访问
代码执行正常,但y.status下面有红线(错误)。
这是为什么?
【问题讨论】:
-
代码如何正确执行并出现错误“C2::status is inaccessible”?
-
在类 C1 的定义中如何使用 C2 ?
-
@EdHeal 是的,我不知道!实际上它应该是可以访问的。 Christophe - 它仅用作参数。这就是为什么我必须使用前向声明。