-1

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

2 回答 2

1

您需要在调用它之前定义该方法。

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

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

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

相反(它不分配动态内存,所以不需要delete

于 2013-08-08T00:58:25.640 回答
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;
    }      
};
于 2013-08-08T08:27:46.663 回答