如何从其朋友类访问抽象类的私有成员?

Pur*_*rak 1 c++ abstract-class friend-class

class A  
{  
private:  
        int a,b,c;  
public:
        virtual int get()=0;
         friend class B;
};

class B{
//here I want to access private variables of class A that is a, b and c
};

class C:public class A
{  
        int get(){    
       //some code  
        }  
};
Run Code Online (Sandbox Code Playgroud)

如何访问类 B 中类 A 的私有成员。我无法创建类 A 的对象,因为它是抽象的。我以某种方式必须使用 C 类的对象来做到这一点,但如何?

Ken*_*rom 5

class A {
    friend class B;
private:
    int x;
public:
    A() : x(42) {}
};

class C : public A {
};

class B {
public:
    int reveal_secrets(C &instance){
        // access private member
        return instance.x;
    }

    int reveal_secrets(){
        // access private member of instance created inside B
        C instance;
        return instance.x;
    }
};

void print_secrets(){
    C instance;
    B accessor;
    std::cout << accessor.reveal_secrets(instance) << ", " << accessor.reveal_secrets() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)