OVH Cloud OVH Cloud

typename

6 réponses
Avatar
Cornu Nicolas
Est-ce que qq 'un sait ce qui ne va pas
La msdn me dit qu'il faut preciser que handler est un type au moyen de
typename.
Je ne sais pas comment faire.

namespace SMSD
{
namespace COMM
{
class ServeurClient
{
private:
pthread_t thRun;
static void* run(void*);
SocketHandler handler;
ListenSocket<ServeurSocket> s(handler);
public:
int rc, t;
ServeurClient(int, bool*);
~ServeurClient();
};
}
}

ServeurClient.h(26): error C2061: erreur de syntaxe : identificateur
'handler'


D'avance merci,

Cornu Nicolas

6 réponses

Avatar
Franck Branjonneau
"Cornu Nicolas" écrivait:

Est-ce que qq 'un sait ce qui ne va pas

SocketHandler handler;
ListenSocket<ServeurSocket> s(handler);


Tu ne peux pas initialiser s avec handler ainsi. Il faut que tu le
fasses dans le constructeur.
--
Franck Branjonneau

Avatar
Michel Michaud
Dans le message 4262d03b$0$15287$,
Est-ce que qq 'un sait ce qui ne va pas
La msdn me dit qu'il faut preciser que handler est un type au moyen
de typename.


Je ne crois pas que ce soit vraiment ton problème...

Je ne sais pas comment faire.

namespace SMSD
{
namespace COMM
{
class ServeurClient
{
private:
pthread_t thRun;
static void* run(void*);
SocketHandler handler;
ListenSocket<ServeurSocket> s(handler);


Tu crois faire quoi en passant ton handler en « paramètre » ? Si c'est
bien une déclaration de s, il faut simplement

ListenSocket<ServeurSocket> s;

--
Michel Michaud
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/

Avatar
Cornu Nicolas
Une fois déclarer comment je l'initialise dans mon constructeur ?

D'avance merci,

NC

"Michel Michaud" a écrit dans le message de
news:hAA8e.278$
Dans le message 4262d03b$0$15287$,
Est-ce que qq 'un sait ce qui ne va pas
La msdn me dit qu'il faut preciser que handler est un type au moyen
de typename.


Je ne crois pas que ce soit vraiment ton problème...

Je ne sais pas comment faire.

namespace SMSD
{
namespace COMM
{
class ServeurClient
{
private:
pthread_t thRun;
static void* run(void*);
SocketHandler handler;
ListenSocket<ServeurSocket> s(handler);


Tu crois faire quoi en passant ton handler en « paramètre » ? Si c'est
bien une déclaration de s, il faut simplement

ListenSocket<ServeurSocket> s;

--
Michel Michaud
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/




Avatar
adebaene
Cornu Nicolas wrote:
Une fois déclarer comment je l'initialise dans mon constructeur ?


Dans la liste d'initialisation du constructeur :

ServeurClient::ServeurClient()
: s(handler)
{
//....
}

Avant de t'attaquer au templates , sockets et autres concepts
"avancés", tu devrais reviser les bases de la syntaxe du langage AMHA
: ce n'est jamais bon de voir plusieurs nouveaux concepts en même
temps.

Arnaud

Avatar
Cornu Nicolas
Je doit réaliser un projet pour mes études et je n'ai pa sle choix le
professeur ne nous a pas donner des cours de C++ :)
On a uniquement fait de la veille.

NC

a écrit dans le message de
news:

Cornu Nicolas wrote:
Une fois déclarer comment je l'initialise dans mon constructeur ?


Dans la liste d'initialisation du constructeur :

ServeurClient::ServeurClient()
: s(handler)
{
//....
}

Avant de t'attaquer au templates , sockets et autres concepts
"avancés", tu devrais reviser les bases de la syntaxe du langage AMHA
: ce n'est jamais bon de voir plusieurs nouveaux concepts en même
temps.

Arnaud

Avatar
Pierre THIERRY
Le Mon, 18 Apr 2005 19:47:40 +0200, Cornu Nicolas a écrit :
Je doit réaliser un projet pour mes études et je n'ai pa sle choix


Raison de plus. Prends le temps de lire un bon bouquin de C++, et
apprends les divers concepts un par un. Si c'est urgent, alors buche ça
en te forçant, mais si tu fais l'économie d'apprendre le C++ et que tu
te lances à tâtons dans ton projet, tu vas juste te planter en beauté.

le professeur ne nous a pas donner des cours de C++ :)


C'est peut-être discutable, mais certains enseignants en informatique
estiment qu'ils sont là pour apprendre la théorie, et que l'élève est
bien assez grand pour s'en servir pour comprendre un langage
particulier. Exemple, on apprend l'orienté objet, à vous de prendre le
manuel de Java, C++ ou SmallTalk.

Pédagogiquement,
Nowhere man
--

OpenPGP 0xD9D50D8A