On Sun, 10 Apr 2005 17:09:44 +0200, "Cornu Nicolas"
:J'ai besoin de créer une classe virtuelle pure.
Et ?
Si j'ai bien compris, ILogger (encore un Java-isme, ce nom
:-/)
est une classe de base, non instanciable, et Logger est une
classe instanciable dérivée de ILogger.
Dans ce cas, un code correct et représentatif serait :
void f (ILogger& log)
{
log << "Hello world!" << endl;
}
int main()
{
Logger mon_logger;
f (mon_logger);
}
Mais normalement, on ferait dériver Logger (ou ILogger) de
ostream, pour pouvoir écrire :
void f (ostream& log)
{
log << "Hello world!" << endl;
}
int main()
{
Logger mon_logger;
f (mon_logger);
f (cout);
f (cerr);
}
On Sun, 10 Apr 2005 17:09:44 +0200, "Cornu Nicolas"
<nicolas.cornu@club-internet.fr>:
J'ai besoin de créer une classe virtuelle pure.
Et ?
Si j'ai bien compris, ILogger (encore un Java-isme, ce nom
:-/)
est une classe de base, non instanciable, et Logger est une
classe instanciable dérivée de ILogger.
Dans ce cas, un code correct et représentatif serait :
void f (ILogger& log)
{
log << "Hello world!" << endl;
}
int main()
{
Logger mon_logger;
f (mon_logger);
}
Mais normalement, on ferait dériver Logger (ou ILogger) de
ostream, pour pouvoir écrire :
void f (ostream& log)
{
log << "Hello world!" << endl;
}
int main()
{
Logger mon_logger;
f (mon_logger);
f (cout);
f (cerr);
}
On Sun, 10 Apr 2005 17:09:44 +0200, "Cornu Nicolas"
:J'ai besoin de créer une classe virtuelle pure.
Et ?
Si j'ai bien compris, ILogger (encore un Java-isme, ce nom
:-/)
est une classe de base, non instanciable, et Logger est une
classe instanciable dérivée de ILogger.
Dans ce cas, un code correct et représentatif serait :
void f (ILogger& log)
{
log << "Hello world!" << endl;
}
int main()
{
Logger mon_logger;
f (mon_logger);
}
Mais normalement, on ferait dériver Logger (ou ILogger) de
ostream, pour pouvoir écrire :
void f (ostream& log)
{
log << "Hello world!" << endl;
}
int main()
{
Logger mon_logger;
f (mon_logger);
f (cout);
f (cerr);
}
On Sun, 10 Apr 2005 17:44:31 +0200, "Cornu Nicolas"
:Je ne suis pas un adepte de Java mais plutot de .NET
C'est la même chose. La principale différence est l'éditeur.Je préfère suffixer mes interface avec un I :)
"Préfixer", tu veux dire ?
Note que le terme "interface" est peu courant en C++.
Le concept même m'est peu familier -- j'ai rarement l'occasion
de faire des classes ne contenant que des fonctions virtuelles
pures.
On Sun, 10 Apr 2005 17:44:31 +0200, "Cornu Nicolas"
<nicolas.cornu@club-internet.fr>:
Je ne suis pas un adepte de Java mais plutot de .NET
C'est la même chose. La principale différence est l'éditeur.
Je préfère suffixer mes interface avec un I :)
"Préfixer", tu veux dire ?
Note que le terme "interface" est peu courant en C++.
Le concept même m'est peu familier -- j'ai rarement l'occasion
de faire des classes ne contenant que des fonctions virtuelles
pures.
On Sun, 10 Apr 2005 17:44:31 +0200, "Cornu Nicolas"
:Je ne suis pas un adepte de Java mais plutot de .NET
C'est la même chose. La principale différence est l'éditeur.Je préfère suffixer mes interface avec un I :)
"Préfixer", tu veux dire ?
Note que le terme "interface" est peu courant en C++.
Le concept même m'est peu familier -- j'ai rarement l'occasion
de faire des classes ne contenant que des fonctions virtuelles
pures.
Fabien LE LEZ wrote:On Sun, 10 Apr 2005 17:44:31 +0200, "Cornu Nicolas"
:Je préfère suffixer mes interface avec un I :)
"Préfixer", tu veux dire ?
Note que le terme "interface" est peu courant en C++. Le
concept même m'est peu familier -- j'ai rarement l'occasion
de faire des classes ne contenant que des fonctions
virtuelles pures.
J'aurais plutôt dit :
le terme "interface" est peu courant sur f.c.l.c++
Fabien LE LEZ wrote:
On Sun, 10 Apr 2005 17:44:31 +0200, "Cornu Nicolas"
<nicolas.cornu@club-internet.fr>:
Je préfère suffixer mes interface avec un I :)
"Préfixer", tu veux dire ?
Note que le terme "interface" est peu courant en C++. Le
concept même m'est peu familier -- j'ai rarement l'occasion
de faire des classes ne contenant que des fonctions
virtuelles pures.
J'aurais plutôt dit :
le terme "interface" est peu courant sur f.c.l.c++
Fabien LE LEZ wrote:On Sun, 10 Apr 2005 17:44:31 +0200, "Cornu Nicolas"
:Je préfère suffixer mes interface avec un I :)
"Préfixer", tu veux dire ?
Note que le terme "interface" est peu courant en C++. Le
concept même m'est peu familier -- j'ai rarement l'occasion
de faire des classes ne contenant que des fonctions
virtuelles pures.
J'aurais plutôt dit :
le terme "interface" est peu courant sur f.c.l.c++
On Sun, 10 Apr 2005 16:27:18 +0200, "Cornu Nicolas"
:int main(int argc, char *argv[])
{
ILogger *log = new Logger();
log->write("132");
log << "123";
std::string s;
std::cin >> s;
return EXIT_SUCCESS;
}
Note que le code ci-dessus est totalement incorrect, puisque
"log" est créé par new et jamais détruit.
On Sun, 10 Apr 2005 16:27:18 +0200, "Cornu Nicolas"
<nicolas.cornu@club-internet.fr>:
int main(int argc, char *argv[])
{
ILogger *log = new Logger();
log->write("132");
log << "123";
std::string s;
std::cin >> s;
return EXIT_SUCCESS;
}
Note que le code ci-dessus est totalement incorrect, puisque
"log" est créé par new et jamais détruit.
On Sun, 10 Apr 2005 16:27:18 +0200, "Cornu Nicolas"
:int main(int argc, char *argv[])
{
ILogger *log = new Logger();
log->write("132");
log << "123";
std::string s;
std::cin >> s;
return EXIT_SUCCESS;
}
Note que le code ci-dessus est totalement incorrect, puisque
"log" est créé par new et jamais détruit.
On Sun, 10 Apr 2005 16:27:18 +0200, "Cornu Nicolas"
:int main(int argc, char *argv[])
{
ILogger *log = new Logger();
log->write("132");
log << "123";
std::string s;
std::cin >> s;
return EXIT_SUCCESS;
}
Note que le code ci-dessus est totalement incorrect, puisque
"log" est créé par new et jamais détruit.
On Sun, 10 Apr 2005 16:27:18 +0200, "Cornu Nicolas"
<nicolas.cornu@club-internet.fr>:
int main(int argc, char *argv[])
{
ILogger *log = new Logger();
log->write("132");
log << "123";
std::string s;
std::cin >> s;
return EXIT_SUCCESS;
}
Note que le code ci-dessus est totalement incorrect, puisque
"log" est créé par new et jamais détruit.
On Sun, 10 Apr 2005 16:27:18 +0200, "Cornu Nicolas"
:int main(int argc, char *argv[])
{
ILogger *log = new Logger();
log->write("132");
log << "123";
std::string s;
std::cin >> s;
return EXIT_SUCCESS;
}
Note que le code ci-dessus est totalement incorrect, puisque
"log" est créé par new et jamais détruit.
J'ai beosin de redefinir la fonction dans les classe filles de
ILogger je prévoit de faire un FileLogger, DatabaseLogger ...
J'ai beosin de redefinir la fonction dans les classe filles de
ILogger je prévoit de faire un FileLogger, DatabaseLogger ...
J'ai beosin de redefinir la fonction dans les classe filles de
ILogger je prévoit de faire un FileLogger, DatabaseLogger ...
Si je veux pouvoir utiliser
log << log_warning << "warning";
et que log_warning sois comme hex et oct pour les flux de la stl
cout << hex << 16;
que ca ajoute "WARNING" à un flux
Si je veux pouvoir utiliser
log << log_warning << "warning";
et que log_warning sois comme hex et oct pour les flux de la stl
cout << hex << 16;
que ca ajoute "WARNING" à un flux
Si je veux pouvoir utiliser
log << log_warning << "warning";
et que log_warning sois comme hex et oct pour les flux de la stl
cout << hex << 16;
que ca ajoute "WARNING" à un flux
Bonjour,
J'aimerais définir une classe log
et l'utiliser comme cerr.
log << "erreur";
Bonjour,
J'aimerais définir une classe log
et l'utiliser comme cerr.
log << "erreur";
Bonjour,
J'aimerais définir une classe log
et l'utiliser comme cerr.
log << "erreur";
Ce qui n'est pas incorrect si c'est ça qu'on veut.
Ce qui n'est pas incorrect si c'est ça qu'on veut.
Ce qui n'est pas incorrect si c'est ça qu'on veut.
On 11 Apr 2005 02:17:46 -0700, :Ce qui n'est pas incorrect si c'est ça qu'on veut.
Je considère le code proposé comme incorrect.
Le même code, avec le commentaire qui va bien pour expliquer
l'absence de delete, peut être considéré comme correct.
On 11 Apr 2005 02:17:46 -0700, kanze@gabi-soft.fr:
Ce qui n'est pas incorrect si c'est ça qu'on veut.
Je considère le code proposé comme incorrect.
Le même code, avec le commentaire qui va bien pour expliquer
l'absence de delete, peut être considéré comme correct.
On 11 Apr 2005 02:17:46 -0700, :Ce qui n'est pas incorrect si c'est ça qu'on veut.
Je considère le code proposé comme incorrect.
Le même code, avec le commentaire qui va bien pour expliquer
l'absence de delete, peut être considéré comme correct.