J'ai une classe A qui prend une référence de B dans son constructeur.Puis-je transmettre une classe enfant à une référence d'une classe parente?
class A {
public:
A(B& b);
}
Et j'ai un SubB de classe qui est une classe enfant de B:
class SubB : public B {
//omitted...
}
Dans mon code, je crée un SubB et de le transmettre à A:
SubB subB;
A a(subB);
Mais Je reçois cette compilation Erreur:
erreur: «B» est une base inaccessible de «SubB»
Puis-je transmettre une référence de SubB en tant que B?
Merci.
Est-ce que 'B' est la seule base de' SubB'? (c'est-à-dire que vous avez accidentellement fait l'erreur ': public X, Y'?) – Amber
Quel compilateur utilisez-vous? Et sont-ils tous dans le même fichier C++? – Uri
Le code a l'air bien sur la base des informations que vous avez fournies. Je pense qu'il y en a d'autres. S'il vous plaît partager l'exemple de code complet. –