通过对象访问成员函数

Accessing a member function through an object

本文关键字:成员 函数 访问 对象      更新时间:2023-10-16

所以我有两个类,比如class Aclass B。在类B的构造函数中,我创建了一个类型为A(private)的对象。在类A中,我有一个成员函数,它显示A的内容void displayA()

现在我运行int main(),创建一个类型为B的对象(理想情况下也是存储在B中的类型为A的对象)。我的问题是如何使用A到B中的方法?

我试过objB.displayA(),但显然没用。我需要在B中创建一个调用a中成员函数的成员函数吗?或者有没有更优雅的解决方案

class B必须具有类型为class A的成员变量。例如:

class B
{
public:
    A a;
    int x;
};

然后你可以这样称呼它:

B objB;
objB.a.displayA();

您需要将要更改的class A的实例传递给objB,然后在传递该实例的函数内部调用obA.displayA();,或者您可以将objA创建为objB的类变量,然后在B的任何函数中调用objA.displayA();

首先,你没有公共和私人吗?你在B类中,是不是有一个类型为A类的变量;像这个

#include <iostream>
class A
{
    public:
        void displayA() {
            std::cout << "call a" << std::endl;
        }   
};
class B
{
    public:
        B():a(){}
        A a;
};
int main(int argc, const char *argv[])
{
    B b;
    b.a.displayA();
    return 0;
}

而B类也可以是:

`class B
 {
  public:
      B():a(){}
      A a;
      void call() {
          this -> a.displayA();
      }
  };`

然后调用调用(),该调用在类B 中