-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_Method() の b_Method() のすべてのコードを正確に複製するため、クラス A で 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(インスタンス変数を使用しない場合は 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 に答える