不确定我所做的事情看起来是不是很糟糕,但我正在努力做到以下几点:
class c_a
{
public:
void do_stuff(c_b *b)
{
b->move_x();
}
};
class c_b
{
public:
void call()
{
c_a a;
a.do_stuff(this);
}
void move_x()
{
cout << "test";
}
};
int main()
{
c_b b;
b.call();
}
我收到了编译错误syntax error : identifier 'c_b'
。如何解决这个问题?
答案 0 :(得分:3)
应宣布使用前的每个名称。
class c_a
{
public:
void do_stuff( class c_b *b);
};
class c_b
{
public:
void call()
{
c_a a;
a.do_stuff(this);
}
void move_x()
{
cout << "test";
}
};
void c_a::do_stuff( c_b *b)
{
b->move_x();
}
int main()
{
c_b b;
b.call();
}