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 : 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
#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 ?) ?