0

我有三个类Class AClass BClass CClass BderivedClass A。一个protectedvirtual function声明 inclass A定义在Class B. C 类是 A 类的一个friend函数。现在我需要virtual function从 C 类调用它。当我尝试编译时,我得到的错误为cannot 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