Polymorphisme et cast dynamique
Bonjour,
Lorsque je compile le code suivant avec Visual Studio, j'obtiens le message d'erreur :
'static_cast' : la conversion de 'FileDataSource *' en 'DataSource *' existe, mais n'est pas accessible.
Code:
1 2 3 4 5 6
|
DataSource* ds;
if (strcmp(type,"sql") == 0)
ds = static_cast<DataSource*>(new SQLDataSource(".\\global.ini"));
else
ds = static_cast<DataSource*>(new FileDataSource(".\\global.ini")); |
FileDataSource et SQLDataSource héritent bien de DataSource!
Avec un dynamic_cast, ça plante à l'exécution. C'est cohérent mais je ne comprends pas cette notion d'accessibilité.
Merci d'avance