不确定我所做的是否是一个糟糕的设计,但我正在尝试执行以下操作:
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();
}
我收到编译器错误语法错误:标识符“c_b”
。如何解决这个问题?
最佳答案
每个名称在使用前都应声明。
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();
}
关于C++ 奇怪的用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22520695/