C++:如何实现指向另一个类的指针作为成员?

问题描述 投票:0回答:1

我想实现一个类“class_B”,它包含指向另一个类“class_A”实例的指针,以便它也可以访问其成员函数。但是,我不知道如何实现这一点。您可以在下面找到我的最小工作示例。你能告诉我我做错了什么吗?

#include <iostream>


class Class_A
{

public:
  int number_;

  // Here we define the constructor for "Class_A".
  Class_A(int a)
  {
    number_ = a;
  }

  void printNumber()
  {
    std::cout << "The value in Class_A is " << number_ << std::endl;
  }
};


class Class_B
{
public:
    Class_A* class_A_instance;

    // Here we define the constructor for "Class_B".
    Class_B(int b)
    {
      class_A_instance = Class_A(b);
    }
};


int main()
{
  Class_B class_B_instance(3);
  class_B_instance::class_A_instance::printNumber();

  return 0;
}
c++ class pointers
1个回答
1
投票

我认为你想用 new 初始化堆上的 classA 实例。然后调用非静态成员类a的实例b类的实例:

#include <iostream>


class Class_A
{

public:
  int number_;

  // Here we define the constructor for "Class_A".
  Class_A(int a)
  {
    number_ = a;
  }

  void printNumber()
  {
    std::cout << "The value in Class_A is " << number_ << std::endl;
  }
};


class Class_B
{
public:
    Class_A* class_A_instance;

    // Here we define the constructor for "Class_B".
    Class_B(int b)
    {
      class_A_instance = new Class_A(b);
    }
};


int main()
{
  Class_B class_B_instance(3);
  class_B_instance.class_A_instance->printNumber();

  return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.