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

Potaito

我想将类指针传递给另一个类的成员的函数,它将无法正常工作。如果该函数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();
};

谁能给我见识?提前致谢

拉德万

确保在Worker类之前定义了Packet类,这是一个完整的测试:

#include <iostream>

class Packet {
private:
    char *contents;

public:
    void pack() {
        this->contents = "Some text";
    }
    char * getContents() {
        return this->contents;
    }
};

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


int main() {
    Packet * packet =  new Packet;
    Worker worker;
    worker.fill_packet(packet);

    std::cout << packet->getContents() << std::endl;

    delete packet;
    return 0;
}

如果运行此测试,您将获得期望的输出。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将类的方法作为参数传递给C ++中的另一个类

来自分类Dev

C#将类作为参数传递给方法,并在其中调用静态方法

来自分类Dev

C#将类作为参数传递给方法,并在其中调用静态方法

来自分类Dev

C#将通用类作为参数传递给自定义方法

来自分类Dev

C ++将类作为参数传递

来自分类Dev

将非托管方法作为回调传递给托管C ++ / CLI类

来自分类Dev

将参数传递给基类构造函数C ++

来自分类Dev

C#twincat将参数传递给类构造函数

来自分类Dev

C ++将方法的指针数组作为参数传递给方法

来自分类Dev

C ++将临时类型名类作为函数参数传递

来自分类Dev

Cython / Python / C ++-继承:将派生类作为参数传递给需要基类的函数

来自分类Dev

(C ++)将'this'传递给静态方法作为默认参数

来自分类Dev

C#-将委托作为参数传递给方法

来自分类Dev

c# 将类变量作为参数在方法 LINQ 中传递,例如?

来自分类Dev

Swift无法将符合协议的类作为函数参数传递给Objective-C文件中的函数

来自分类Dev

将组合框所选项目作为参数值传递给Winform C#中的类函数

来自分类Dev

MongoDB C#创建一个函数,我可以将类型/类名作为参数传递给它

来自分类Dev

c ++ std::vector 作为类方法的参数传递的函数

来自分类Dev

无法将迭代器传递给C ++中的类方法

来自分类Dev

将模板类作为参数传递给其他文件类?

来自分类Dev

获取作为基类传递给泛型方法的派生C#类的属性

来自分类Dev

通过引用传递给python(áC ++)中的类的参数,以使用类方法对其进行修改

来自分类Dev

将外部变量传递给类C ++

来自分类Dev

C#将串行传递给类

来自分类Dev

将数组传递给类函数C ++

来自分类Dev

C#类作为其他类变量,生存范围

来自分类Dev

C ++类作为其他类的成员,这是如何定义的?

来自分类Dev

将内联构造的类作为类参数传递给方法

来自分类Dev

将内联构造的类作为类参数传递给方法

Related 相关文章

  1. 1

    将类的方法作为参数传递给C ++中的另一个类

  2. 2

    C#将类作为参数传递给方法,并在其中调用静态方法

  3. 3

    C#将类作为参数传递给方法,并在其中调用静态方法

  4. 4

    C#将通用类作为参数传递给自定义方法

  5. 5

    C ++将类作为参数传递

  6. 6

    将非托管方法作为回调传递给托管C ++ / CLI类

  7. 7

    将参数传递给基类构造函数C ++

  8. 8

    C#twincat将参数传递给类构造函数

  9. 9

    C ++将方法的指针数组作为参数传递给方法

  10. 10

    C ++将临时类型名类作为函数参数传递

  11. 11

    Cython / Python / C ++-继承:将派生类作为参数传递给需要基类的函数

  12. 12

    (C ++)将'this'传递给静态方法作为默认参数

  13. 13

    C#-将委托作为参数传递给方法

  14. 14

    c# 将类变量作为参数在方法 LINQ 中传递,例如?

  15. 15

    Swift无法将符合协议的类作为函数参数传递给Objective-C文件中的函数

  16. 16

    将组合框所选项目作为参数值传递给Winform C#中的类函数

  17. 17

    MongoDB C#创建一个函数,我可以将类型/类名作为参数传递给它

  18. 18

    c ++ std::vector 作为类方法的参数传递的函数

  19. 19

    无法将迭代器传递给C ++中的类方法

  20. 20

    将模板类作为参数传递给其他文件类?

  21. 21

    获取作为基类传递给泛型方法的派生C#类的属性

  22. 22

    通过引用传递给python(áC ++)中的类的参数,以使用类方法对其进行修改

  23. 23

    将外部变量传递给类C ++

  24. 24

    C#将串行传递给类

  25. 25

    将数组传递给类函数C ++

  26. 26

    C#类作为其他类变量,生存范围

  27. 27

    C ++类作为其他类的成员,这是如何定义的?

  28. 28

    将内联构造的类作为类参数传递给方法

  29. 29

    将内联构造的类作为类参数传递给方法

热门标签

归档