我正在尝试使我的客户端是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);
}
答案 0 :(得分:2)
你只需要使objB成为A类的成员变量,然后你可以在构建objA时对其进行初始化,如下所示
class A
{
private:
B objB;
public:
A(string host);
};
A::A(string host): objB(host) {}
然后,您可以稍后从ObjA调用ObjB中的任何方法。