class base
{
struct struk1
{
int a1;
};
struct struk1 s1;
public:
base(int x)
{
s1.a1 = x;
}
base() {}
};
class b : public base
{
struct struk1 s2; // Works Fine
base::struk1 s3; // Error is given => 'struct base::struk1' is private
base b1;
public:
b(int x, int y) : base(y)
{
s2.a1 = x; // Works Fine
b1.s1.a1 = x; // Error => 'base::struk1 base::s1' is private
}
}
Dans le code ci-dessus, je me fais des erreurs lors de l'accès et la création d'objets de la structure qui est sous le spécificateur private
dans la classe base
.C++ Accès structure privée de la base en classe derive
Veuillez me dire pourquoi je peux créer une variable de structure directement, mais pas en utilisant l'objet de classe base
dans la classe dérivée.
Quel compilateur utilisez-vous? [Clang rejette votre code avec une erreur attendue] (http://coliru.stacked-crooked.com/a/2917984eabedbf68). – StoryTeller
J'ai utilisé un compilateur basé sur le Web de http://cpp.sh/ L'URL pour mon code est cpp.sh/4zfre/ – Nripendra
Il est mentionné sur le site cpp.sh que 'Le système utilise GCC 4.9.2, avec Boost 1.55 disponible ' – Nripendra