Protected, public, différence Win et Linux ?
Bonjour,
j'ai résolu un petit problème que j'avais, mais je ne comprend pas pourquoi.
J'ai deux version du même code, une version pour Linux et une version pour Windows.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| #if defined(__LINUX)
class SystemInStream: public io::UnixInStream {
protected:
friend class System;
inline SystemInStream(int fd): UnixInStream(fd) { }
inline ~SystemInStream(void) { }
};
#elif defined(__WIN32) || defined(__WIN64)
class SystemInStream: public io::WinInStream {
protected:
friend class System;
public:
inline SystemInStream(HANDLE fd): WinInStream(WinInStream::fd()) { }
inline ~SystemInStream(void) { }
};
#endif |
La seule différence entre les deux est que sous la version windows, j'ai dû mettre les fonctions en public au lieu de protected (sinon mingw-gcc refusait la compilation, parce que c'était en protected).
Pourquoi ? Y a t'il une différence entre public et protected selon que l'on est sous Windows ou sous Linux (et pourquoi donc ?) ?