0

Class AClass Bおよびの 3 つのクラスがありClass Cます。からClass Bです。で宣言されたピュアは で定義されています。クラス C はクラス A の関数です。クラス C からそれを呼び出す必要があります。コンパイルしようとすると、エラーが発生します。derivedClass Aprotectedvirtual functionclass AClass Bfriendvirtual functioncannot access protected member declared in class A

それは可能ではありませんか?

編集:コードが追加されました:

//A.h

class A
{
    friend class C;
 protected:
   virtual int SetPtr(unsigned long long Offset)=0;
};



//B.h
class B: public A
{
protected:
            int SetPtr(unsigned long long Offset) override;//function defined in B.cpp
};

//C.h

class C
{
public:
    C(A& aObj);
    int CallMyFun();
private:
    A& obj;
};

//C.cpp:

C::C(A& aObj) :obj(aObj)
{
}

int C::CallMyFun()
{
    obj.SetPtr(1);
    return 0;
}
4

0 に答える 0