c++ - 将自己的类的实例传递给另一个

标签 c++ class instance

假设我有这些类(问号标记我需要在这里传递的问题):

class A
{
  ...
  public:
  void pass()
  {
     B ins;
     ins.doSth(?????);
  }
};

class B
{
  ...
  public:
  void doSth(const A &sth)
  {
    ...
  }
}

int main()
{
  A te;
  te.pass();
}

你能传递一个你自己的类的实例吗?或者这只是我这边失败的类结构的一个例子?

最佳答案

成员函数中的当前对象是*this。您可以将其传递给另一个函数。

必须考虑这些类如何相互依赖,并且一个类在声明完成之前不能使用另一个类。

虽然这会起作用:

class A
{
  //...
  public:
  void pass();
};

class B
{
  //...
  public:
  void doSth(const A &sth)
  {
    //...
  }
};


// Here both classes are completely declared

void A::pass()
{
   B ins;
   ins.doSth(*this);
}


int main()
{
  A te;
  te.pass();
}

关于c++ - 将自己的类的实例传递给另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50092438/

相关文章:

c++ - 运行我的 C++ 代码给我一个空白的控制台

c++ - enable_shared_from_this 可以在没有继承的情况下使用吗?

c++ - 从 C++ 调用 matlab fmincon

java - 在另一个类中使用字符串

python - 在 __func__ 上设置属性

c# - 静态到实例,我该如何正确处理?

c++ - C++ 链接器如何知道哪个 .lib 包含哪些函数?

arrays - 如何使用另一个类的变量打印一个类的元素?

java - Java中Instant类的构造函数?

python - 无法更改 python 中实例的值