【发布时间】:2013-09-10 15:32:21
【问题描述】:
我想将一个类指针传递给一个函数,该函数是另一个类的成员,但它不起作用。如果函数fill_packet不是任何类的成员,则代码编译没有问题:
// WORKS FINE:
class Packet{
private:
char *contents;
public:
void pack();
};
void fill_packet(Packet *a){
a->pack();
};
但是,如果函数 fill_packet 位于另一个类(此处为 Worker)中,则当我尝试访问 a 的方法时,它突然不再编译。
// WON'T COMPILE:
// error: ‘Packet’ has not been declared
class Worker{
public:
void fill_packet(Packet *a){
a->pack();
};
};
class Packet{
private:
char *contents;
public:
void pack();
};
谁能给我一些见解?提前致谢
【问题讨论】:
-
您在此处发布的内容很好。一定是有其他问题。
-
添加更多信息。你在哪里调用fill_packet?您是在使用有效包装的有效工人调用它吗?尝试编译时收到什么错误消息?
-
听起来像 fill_packet 可能想要是静态的。那么它也应该可以工作。
-
不要使用指针传递引用,使用引用
标签: c++ function class arguments