Bonjour,

J'essaye de masquer des traitements en héritant d'une classe par 'private' :

soit un fichier classA.h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
class ClassA_private;
 
class ClassA : private ClassA_private {
 
    public:
        ClassA();
    };
et un fichier ClassA.cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
#include "classA.h"
 
//-----
typedef struct {
    int var;
    } TypeInterne;
 
class ClassA_private {
    public:
        TypeInterne ti;
    public:
        internalInit() { 
            ti.var = 5;
            }
    };
 
//-----
ClassA::ClassA() {
 
    internalInit();
    }
Voilà l'esprit de la chose, mais le compilateur n'en veut pas. Il considère qu'il n'en sait pas assez sur ClassA_private.

Commet s'y prendre ?

Merci.