# XCODE Console C++  faire ses propres templates?



## chemical_seb (20 Février 2007)

slt,
bon j ai depuis quelques jours mon macbook !  franchement macosx , les softs develloppés pour , c est fort , et j aime vrmt bien xcode , c est clair , c est agreable a utiliser! je veux plus autre chose!

donc je develloppe une applic en C++ ( mon projet est un C++ tool), des classes qui representent des employes etc...

je dois creer un vecteur en utilisant le principe template...
donc je pourrai declarer ds mon main par ex., Vecteur<int>(3)  ou encore Vecteur<employe>(3)...

je n ai jamais de C++ sous un ide, ce que je faisais precedement , c est editeur de texte, makefile, compilation sous sunray et ma class template passait...

*Vecteur.h*
using namespace std;

template <class T> class Vecteur
{
protected :
	T   *data;
	int nbreElem;


public :
	Vecteur(int n); // CONSTRUCTEUR

	~Vecteur() { delete data; }

	int getNbr  () { return nbrElem;}
	T&  getDataRef() {return *data;}

	T& operator[] (int i) { return *(data+i); }

	};

*Vecteur.cxx*
#include "Vecteur.h"

template <class T> Vecteur <T>:: Vecteur(int n)
    {
    data=new T[n];
	nbreElem=n;
    }

*main*
#include <iostream>
#include "personne/personne.h"
#include "template/vecteur.h"

int main (int argc, char * const argv[]) {
    // insert code here...
    std::cout << "Hello, World!\n";

	Vecteur<int> test(3);

    return 0;
}

la compilation passe sans problemes mais à l'execution ...  voici ce que j'ai..
[Session started at 2007-02-20 15:38:58 +0100.]
Hello, World!
ZeroLink: unknown symbol '__ZN7VecteurIiEC1Ei'

inpres_museum has exited due to signal 6 (SIGABRT).

en esperant que quelqu un pourra m'aider... merci.


----------



## ntx (20 Février 2007)

1/ Dans la stl, tu as la classe vector  Pas la peine de réinventer la roue.  
2/ Sur ta cible, "Get info" > "Build", décoche "Zerolink".


----------



## chemical_seb (20 Février 2007)

j'ai bien desactiver l'option zeroling ds 'target' ...

a present la compilation donne cette erreur:
Building target inpres_museum of project inpres_museum with configuration Debug  (1 error)
	    cd /Users/seb/inpres_museum
    /usr/bin/g++-4.0 -o /Users/seb/inpres_museum/build/Debug/inpres_museum -L/Users/seb/inpres_museum/build/Debug -F/Users/seb/inpres_museum/build/Debug -filelist /Users/seb/inpres_museum/build/inpres_museum.build/Debug/inpres_museum.build/Objects-normal/i386/inpres_museum.LinkFileList -arch i386 -Wl,-Y,1455 -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk
/usr/bin/ld: Undefined symbols:
Vecteur<int>::Vecteur(int)
/Users/seb/inpres_museum/build/inpres_museum.build/Debug/inpres_museum.build/Objects-normal/i386/main.o reference to undefined Vecteur<int>::Vecteur(int)
collect2: ld returned 1 exit status
		/usr/bin/ld: Undefined symbols:
		Vecteur<int>::Vecteur(int)
		/Users/seb/inpres_museum/build/inpres_museum.build/Debug/inpres_museum.build/Objects-normal/i386/main.o reference to undefined Vecteur<int>::Vecteur(int)
		collect2: ld returned 1 exit status
Build failed (1 error)



j'ai l'impression qu'il y a un probleme au niveau de mon constructeur...


sinon, j'ai trouve ce tuto http://www.developpez.biz/download/stl.pdf  sur cette fameuse stl !!! j'y ai jete un oeil et ca me fait penser au package de java avec tt ce bon code genrique et pret a l'emploie !!!    mais je ne sais pas si je peux utiliser cette stl ds le cadre de mon projet , car les profs n'en ont jamais parlé de cette stl , j'imagine qu'ils veulent d'abord nous faire comprendre les rouages de la roue c'est pourquoi j'aimerais utiliser la classe que j ai ecrite ...


----------



## ntx (21 Février 2007)

chemical_seb a dit:


> j'ai bien desactiver l'option zeroling ds 'target' ...
> 
> a present la compilation donne cette erreur:
> Building target inpres_museum of project inpres_museum with configuration Debug  (1 error)
> ...


Je sais que sous Solaris on mettait tout le code dans le .h. Je ne sais plus sous Mac OSX, tu peux essayer ?


> mais je ne sais pas si je peux utiliser cette stl ds le cadre de mon projet , car les profs n'en ont jamais parlé de cette stl


Essaye tu verras bien


----------



## chemical_seb (21 Février 2007)

sous sunos, ma class template passe avec un fichier.h et un .cxx alors j ai esseye sous xcode de tout mettre ds un .h  et maintenant ca compile et ca marche bien !!!!


merci ntx pour ton aide et merci aussi pour STL


----------



## ntx (21 Février 2007)

Des explications au sujet des .h et .cpp pour les classes template.
D'autres ici.


----------

