2010-10-01 5 views
0

HI,Accès Valeur en C++

J'ai deux clases A et B, Ici A est héritant B et maintenant je veux accéder à une variable B de A, je compris un en-tête en B et a tenté d'accéder mais montrant une erreur dans QObject.

Est-il possible d'accès comme celui-ci .. S'il vous plaît aider

+5

S'il vous plaît poster erreur exacte et le code! – JoshD

+0

Une erreur dans 'QObject' indique un problème avec la partie Qt du problème, plus qu'un problème avec le côté C++. En général, si le membre de 'base' est public ou protégé, toutes les classes dérivées peuvent y accéder. –

Répondre

3

Pas sûr que je reçois votre Q correctement ....

class A { 
public: 
    int nValueA; 
protected: 
    int nValueB; 
private: 
    int nValueC; 
}; 

class B : public A { 
public: 
    B(); 
    int x, y, z; 
}; 
B::B(): 
x(nValueA), //-->OK 
y(nValueB), //-->OK 
z(nValueC) //-->error due to child can't inherit parent's private member 
{} 

void main(){ 
    B object; 
    object.nValueA = 888; //--> valid 
    object.nValueB = 888; //--> error since protected member is not accessible 
    object.nValueC = 888; //--> error since private member is not accessible 
} 

Solution possible:

class A { 
public: 
    int nValueA; 
    int nValueB; 
    int nValueC; 
}; 
1

est votre variable membre private? Alors vous ne pouvez pas, déclarez-le protected.