|
From: | Valéry Raulet |
Subject: | Re: [certi-devel] List is dead |
Date: | Mon, 27 Jan 2003 10:28:18 +0100 |
User-agent: | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3a) Gecko/20021212 |
Benoît Bréholée wrote:
Valéry Raulet <address@hidden> writes:993 Proposition d'utiliser une list pour Attribute/FederateHandleSet. 994 Proposition d'utiliser une list pour Attribute/ParameterHandleValuePairSet.Ok, juste une remarque à propos de ça : j'ai vu que tu mets une des classes HLA comme héritant de list, on a ça aussi dans RTIambassador, qui est utilisé comme une classe Socket. Ce serait bien de se rapprocher de la norme en supprimant ça (ie. que ces classes apparaissent comme dans la norme, donc sans être une sous-classe de quelque chose). Ca doit pouvoir se remplacer coté implémentation en plaçant list/Socket en attribut, mais peut-etre qu'il y a un moyen plus simple de « cacher » la déclaration d'implémentation pour n'avoir que la déclaration strictement HLA. Est-ce que tu as des idées à ce sujet ? Sinon ça attendra, c'est juste un détail, je ne crois pas que ce soit gênant.
Je m'étais posé la même question ! J'ai essayé quelque chose et ça marche ! Ci-joint un exemple.
A+ -- Benoit _______________________________________________ certi-devel mailing list address@hidden http://mail.nongnu.org/mailman/listinfo/certi-devel
-- Valéry Raulet Ecole Nationale d'Ingénieurs de Brest Laboratoire d'Ingénierie Informatique Parvis Blaise Pascal Technopole Brest-Iroise Tél : (033) 298 05 66 75 29200 Brest - France Fax : (033) 298 05 66 29
#include <list> #include <iostream> using namespace std; class Base { public: virtual ~Base(void) {} virtual void f(int x) = 0; virtual void display(void) = 0; }; class BaseImp : public Base, public list<int> { public: BaseImp(void); ~BaseImp(void); void f(int x); void display(void); }; BaseImp::BaseImp(void) { } BaseImp::~BaseImp(void) { } void BaseImp::f(int x) { push_back(x); } void BaseImp::display(void) { cout << endl; list<int>::const_iterator i = begin(); for (; i != end(); i++) { cout << "valeur = " << (*i) << endl; } } class BaseFactory { public: static Base * create(void); }; Base * BaseFactory::create(void) { return (Base*)(new BaseImp()); } int main(void) { Base * b; b = BaseFactory::create(); b->f(3); b->f(4); b->f(5); b->display(); return 0; }
[Prev in Thread] | Current Thread | [Next in Thread] |