gpt4 book ai didi

C++:将类作为参数传递给其他类的方法

转载 作者:太空宇宙 更新时间:2023-11-04 15:44:28 24 4
gpt4 key购买 nike

我想将一个类指针传递给一个函数,该函数是另一个类的成员,但它不起作用。如果函数 fill_packet 不是任何类的成员,代码编译没有问题:

// WORKS FINE:

class Packet{
private:
char *contents;

public:
void pack();
};

void fill_packet(Packet *a){
a->pack();
};

但是,如果函数 fill_packet 在另一个类中(这里是 Worker),当我尝试访问 的方法时,它突然不再编译>一个

// 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();
};

有人可以给我见解吗?提前致谢

最佳答案

在声明“Packet”之前,Worker 可能包含在其他地方。要解决此问题,您可以在声明“Worker”时告诉编译器类 Packed 存在,并且需要将“fill_packet”的实现放在声明两个类的地方;

像这样:

class Packet;
class Worker{
public:
void fill_packet(Packet *a);
};

//in a cpp file:
void Worker::fill_packet(Packet *a){
a->pack();
};

希望对您有所帮助,拉克斯万。

关于C++:将类作为参数传递给其他类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18723096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com