Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Question syntaxe C++ [ Divers / Débutant(e) ] (max12)

samedi 10 novembre 2007 à 18:12:47 | Question syntaxe C++

max12

Administrateur CodeS-SourceS
Bonjour,

J'ai c'est la première fois que j'utilise les template en C++ et j'ai un soucis, c'est surement quelque chose de très simple au point que vous allez rire de moi pendant des mois, mais je suis a veille de devenir fou anyway.

#pragma once

template <class T>
class Element
{
    Element* next;
    Element* prev;
    T data;

public:

    Element(T data)
    {
        this->data = data;
    }
};

template <class T>
class CVector
{
public:
    class Element;
private:
    Element* pFirst;
    int nb;

public:
    CVector(void);
    ~CVector(void);
    bool add(T data);
    void remove(Element* pE);

    //T getdata(Element* e);
};


Sa compile sur G++ mais lorsque je tombes dans VC++ ou que je passe dans dans Eclipse j'obtient :

erreur: expected «=", «,", «;", «asm" or «__attribute__" before «<" token    Spidermail    vector_template.h    line 3    1194714081459    5

Qu'est-ce que je fais de mal ?????????????? VC++ c'est la même erreur mais dans terme différent et lui me parle de mettre }; avant template ou je sais plus quoi.

il y a pas d'autres .h en jeu rien qu'un main à part ça.

Assez décourageant pour une fois depuis longtemps que je suis un tantinet motivé.

A+

samedi 10 novembre 2007 à 20:43:30 | Re : Question syntaxe C++

luhtor

template <class T>
class CVector
{
public:
    class Element<T>;

..
};

A mon avis, ca lui fera pas de mal. Mais vu le message d'erreur, c'est pas sur que ce soit uniquement cela.
Faut bien voir que Element<int> et Element<double> n'ont rien a voir, ce sont deux classes totalement différentes.

Donc quand tu dis:
public:
    class Element; <= laquelle ?


samedi 10 novembre 2007 à 21:20:16 | Re : Question syntaxe C++

max12

Administrateur CodeS-SourceS
Rebonjour

Class Element fait référence à celle du dessus, en faite sa ne devrait pas être là mais j'ai vu dans un exemple quelqu'un qui le faisait donc j'ai copié en espérant donner un résultat. Bon finalement j'ai utiliser une classe deja faite template en exemple et encore j'obtient une erreur sans queue ni tête sauf quand je vais sous VC++6 la c'est #1 sans erreur mais sous 2003 et 2005 c'est l'hécatombe.

Sous VC6 j'ai plus l'erreur bizaröde mais j'obitent  plutot :
main.obj : error LNK2001: unresolved external symbol "public: __thiscall CVector<int>::~CVector<int>(void)" (??1?$CVector@H@@QAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall CVector<int>::CVector<int>(void)" (??0?$CVector@H@@QAE@XZ)

Il y a peut-être un liens entre les 2 mais que les compilateurs focus pas sur la même chose.

Bon merci de ton aide

samedi 10 novembre 2007 à 23:18:14 | Re : Question syntaxe C++

luhtor

La c'est simple, il faut simplement que tout le code soit dans le fichier .h. Aucun code dans le cpp, ce qui est compréhensible.

dimanche 11 novembre 2007 à 01:17:11 | Re : Question syntaxe C++

gamemonde

Membre Club
il y a pas d'autres .h en jeu rien qu'un main à part ça.

alors ou sont lle code de ton constructeur et destructeur



dimanche 11 novembre 2007 à 23:04:58 | Re : Question syntaxe C++

max12

Administrateur CodeS-SourceS
Merci pour votre aide mais j'ai fini par réussir à le faire fonctionner :)

http://laptopgun.blogspot.com/
&



Cette discussion est classé dans : public, class, data, element, template


Répondre à ce message

Sujets en rapport avec ce message

template et héritage [ par cybermax62 ] j'ai un problème de fond dans ma conception. Je voudrais utiliser une classe template de base Singleton avec des classes héritées (plusieurs fois). Le template et l'héritage [ par imad_lol ] salut.dans mon programme je déclare 2 classe X et Y.les 2 classe sont des classes templates et Y hérite de X :template class X{ };//****************** Class derivée, Surcharge, Template ??? [ par nawakator ] J'ai créer 1class de Base class cTask et 2 class dériver : class cTaskA:cTask et class cTaskB:cTask;La class de Base est virtuel;Je les stockent dans Classe contenant vecteur template [ par val3113 ] Bonjour,Je suis sur un programme cpp sous linux. J'ai créé une classe template "Vecteur" qui est censée pouvoir recevoir plusieurs types dont des clas class A:public int ??? [ par foxz ] J'ai besoin de faire ca : class A:public int{}; mais ca ne marche pas. (ni avec float) En fait, je veux cree une class ressemblant a un int mais j'a Heritage Templates [ par ricklekebekoi ] Bonjour,Premiere utilisation des templates, et je frappe un mur .... dites moi ce que j'ai pas compris :En gros j'ai une classe générique symboleEt j' Problème d'héritage multiple [ par Aquarian ] Bonjour, Voici un morceau de code sur lequel j'ai un problème, en fait il se compile bien sous Visual Studio .NET 2003 ou sous Dev-cpp, mais il ne fai iterator sur class template [ par istdasklar ] Bonjour,je n'arrive pas a crée des iterator sur le container d'une classe template!Je m'explique par cette exemple :#include using namespace std;templ template rendre friend un operator<< [ par littlenemo ] Hello world !!Un petit merci a tout ce qui me lirons et peut etre un grand a celui qui me donne ma reponce.Alors je vous mets dans le bain:Je doit cod OpenGL + wxWIDGETS = galére ??????? [ par satellite34 ] bonjour,j'essaye d'utiliser openGl avec wxWidgets et franchement je me rends dingue.j'ai mis les wxUSE_GLCANCAS a 1 dans les fichiers setup.h, recompi


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,108 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.