Et bien si, cela compile sous VS2003 (et il me semble aussi sous 2005 mais je revérifierais) à tord visiblement. Par contre impossible d'en tirer partie :
Ce code ne compile plus dès que Fille tente d'apeller une méthode privée.
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
23
24
25
26
27
28
29 #include <iostream> template <class T> class Mere { private: friend class T; protected: Mere<T>() {} Mere<T>( const Mere<T> & ); Mere<T> & operator =( const Mere<T> & ); private: void direBonjour() { std::cout << "Hello" << std::endl; } }; class Fille : public Mere<Fille> { private: friend class Mere<Fille>; public: Fille() : Mere<Fille>() { Mere<Fille>::direBonjour(); } }; int main() { Fille f; return 0; }
Partager