我不确定是否允许,但我想尝试一下。 我有两个不相关的类,我想在类A中调用类B的函数b_Method(),我只对它返回的布尔值感兴趣。
class A
{
Public:
bool a_Method()
{
B *obj = new B();
bool varBool= obj->b_Method();
return varbool;
}
}
class B
{
public:
bool b_Method()
{
"does something"
return varBool;
}
}
我试图在A类中调用b_Method(),因为其他选项将完全复制a_Method()中b_Method()的所有代码,但是我遇到了以下编译器错误。
: error C2065:'A' : undeclared identifier
: error C2065: 'obj' : undeclared identifier
: error C2061: syntax error : identifier 'A'
: error C2228: left of '->b_Method' must have class/struct/union
type is ''unknown-type''
答案 0 :(得分:1)
您需要在之前定义方法。
此外,如果方法为static
(如果它不使用任何B
实例变量,则可以将其标记为静态),您只需调用{{ 1}}从任何地方开始运行。无需制作实例。
最后,不要忘记B::b_Method()
你的实例!或者使用
delete
而是(它没有分配动态内存,所以不需要B obj;
bool varBool= obj.b_Method();
return varbool;
)
答案 1 :(得分:0)
class B
{
public:
bool b_Method()
{
return true;
}
};
class A
{
public:
bool a_Method()
{
B *obj = new B();
bool varBool= obj->b_Method();
return varBool;
}
};