我可以调用其他无关类的函数吗

Can I call a function of other unrelated class

本文关键字:函数 调用 其他 我可以      更新时间:2023-10-16

我不确定是否允许,但我想试一试。我有下面两个不相关的类,我想在类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''

在调用方法之前,需要定义方法

此外,如果该方法是static(如果它不使用B的任何实例变量,则可以将其标记为静态),则只需从任何位置调用B::b_Method(),它就会运行。无需创建实例。

最后,不要忘记delete您的实例!或者使用

B obj;
bool varBool= obj.b_Method();
return varbool;

相反(它不分配动态内存,因此不需要delete

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;
    }      
};