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

时间:2013-08-08 00:54:06

标签: c++

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

2 个答案:

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