[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux] [off topic]: question c++



hello,

une petite question de réflexion...
la réponse doit être toute conne quand on connait le c++ mais vu que 
c'est un dossier pour l'exam de demain, ...

j'ai une classe Centre

qui donne ca (pour les private)

class Centre
{
	friend ostream& operator<<(ostream&,const Centre&);
	friend istream& operator>>(istream&,Centre&);
	private:
		std::vector<PersAdmin> vecCAdmin;
		std::vector<PersForma> vecCForma;
		std::vector<PersClient> vecCClient;
		std::vector<Formation> vecCFormation;
		std::string nom;
		std::string adresse;
	public:
		... 
}

les classes PersAdmin c'est un truc dans le genre y'a un string nom, 
prenom, adresse, ...

et dans l'applic, j'ai un vector global (oui, je sais ;p)
std::vector<Centre> vecCentre;

j'ai aussi une classe Fichier
dans laquelle y'a notamment ceci

template <class type>
void Fichier<type>::saveF(vector<type>& vect)
{
	if(fiche.fail())
	{
		cout << "Erreur ouverture " << nomfichier << endl;
		return;
	}
	enreg<type> monenreg;
	monenreg.del=vect.size();
	vector<type>::iterator deb = vect.begin();
	while(deb!=vect.end())
	{
		monenreg.objet=(*deb++);
		fiche << monenreg.del << " " << monenreg.objet << " ";
	}
	fiche << "";
}

enreg c'est ca ->
template <class type>
struct enreg
{
	int del;        //Flag pour suppr. logique
	type objet;     //Objet qui sera sauver
};

bon, donc, quand je veux sauver des personnes (oui, y'a ca),
ben j'ai les << et >> qui sont surchargés et ça va fort bien...
par contre, j'arrive pas a trouver comment je dois faire pour sauver 
Centre (les << >> acceptent pas les vector)...
Y'aurait bien la version foutre un flag pour dire combien y'a de PersAdmin,
PersClient... mais c'est vachement goret...

Une idée ??

@+,
binny

ps: svp, l'exam est demain ;)) (oui, je sais, je suis à la bourre et j'ai 
un uptime de 2 days, 11h08... donc faut m'excuser si je suis pas clair ou 
que je trouve pas un truc qui doit être somme toute ridicule...

-- 

#ifdef FUNNY_MSGS
	 M_print ("No Mirabilis client was maimed, hacked, tortured,
	 sodomized otherwise harmed in the making of this utility.\n");
#endif
		-- micq code

Benjamin Michotte        <binny@baby-linux.net>
web      : http://www.baby-linux.net
homepage : http://www.baby-linux.net/binny
icq uin  : 99745024

[ Soyez précis dans vos sujets svp afin de déterminer directement  ]
[ le type de demande...                                            ]
[ Pour vous (dés)inscrire, aller sur http://linuxbe.org/ml.php     ]
[ http://LinuxBe.org              Contact: listmaster@linuxbe.org  ]