C ++试图在另一个对象中调用一个对象方法

时间:2016-10-17 01:42:43

标签: c++

我正在尝试使我的客户端是A类来调用serverstub类中的方法,即B。

客户端类应将主机地址作为输入 我不能使objB全局变量因为它需要创建输入。 所以现在当我尝试编译时,只是说它没有在范围内声明。

class A {
   public:
      A(string host){
        B objB(host);
      }
      void amethod(int) {
         objB.bmethod(); // here 
      }
};

class B {
   public:
      B(string host)
      void bmethod(void) {}
};

main(int argc, char*argv[]) {
  string host;

  if(argc>1){
    host = string(argv[1]);
  } else{
    host = "http://127.0.0.1:8080";
  }

  A objA(host);
}

1 个答案:

答案 0 :(得分:2)

你只需要使objB成为A类的成员变量,然后你可以在构建objA时对其进行初始化,如下所示

class A
{
private:
   B objB;
public:
   A(string host);
};

A::A(string host): objB(host) {}

然后,您可以稍后从ObjA调用ObjB中的任何方法。