certi-devel
[Top][All Lists]
Advanced

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

Re: [certi-devel] List is dead


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;
}

reply via email to

[Prev in Thread] Current Thread [Next in Thread]