Comment passer vector<char> Tableau en paramètre de méthode

Fermé
gabbe2 Messages postés 14 Date d'inscription dimanche 10 avril 2011 Statut Membre Dernière intervention 20 mars 2014 - 20 mars 2014 à 21:16
Crazy Legs Messages postés 635 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 27 septembre 2016 - 24 mars 2014 à 16:10
Bonjour,

je suis étudiante en informatique et je suis en train de programmer un travail sur les classes et les STL (vector et stack) en C++. Pour débuter, voici ce que j'ai:

Ma classe:


class Prefix
{
private :
stack <int> PileInt;
stack <char> PileChar;
vector <char> Tableau;

public :
// on lit une expression infixe dans un tableau (du clavier en char),
// on évalue sa validité, on la transforme en préfixe,
// on l'affiche en préfixe et on la calcule en préfixe.

Prefix(); // le constructeur de la classe Prefix

~Prefix(); // le destructeur de la classe Prefix

bool prefixe (vector<char> &Tableau);

bool valider_expression (vector<char> Tableau, stack<char> PileChar);

void transformerEnNombres (vector <char> Tableau);

void transformerEnPrefixe(stack<int> PileInt, vector<char> Tableau);

int evaluer_expression(stack<int> PileInt, vector<char> Tableau);
};

Le début de mon main:

int main(void)
{
bool validation = true;
Prefix objPrefix;

validation = objPrefix.prefixe(Tableau);

return 0;
}

Je veux passer Tableau en paramètre à ma méthode "préfixe" pour que ce Tableau contienne les caractères qui y sont entré, mais j'ai une erreur me disant que Tableau n'est pas déclaré.

J'ai essayé Prefix.Tableau, Prefix().Tableau, Tableau(), Prefix.Tableau(), Prefix::Tableau... rien n'y fait.. je ne comprends pas comment passer mon vector<char> en paramètre, et je dois le passer en paramètre PARTOUT!

Merci d'avance!

A voir également:

3 réponses

gabbe2 Messages postés 14 Date d'inscription dimanche 10 avril 2011 Statut Membre Dernière intervention 20 mars 2014
20 mars 2014 à 21:23
Et puis,
quand je ne met aucun paramètre à ma méthode prefixe(), je reçois des erreurs de link qui m'apparaissent beaucoup trop souvent! :

1>main.obj : error LNK2019: symbole externe non résolu "public: __thiscall Prefix::Prefix(void)" (??0Prefix@@QAE@XZ) référencé dans la fonction _main

1>main.obj : error LNK2019: symbole externe non résolu "public: __thiscall Prefix::~Prefix(void)" (??1Prefix@@QAE@XZ) référencé dans la fonction _main

1>C:\Users\Utilisateur\Documents\0Université\Session 2 - Hiver 2014\Prog Algo et Structures de donnees\Devoirs\TP2\Devoir2\Debug\Devoir2.exe : fatal error LNK1120: 2 externes non résolus
0
RedSkidy Messages postés 196 Date d'inscription jeudi 30 janvier 2014 Statut Membre Dernière intervention 22 octobre 2015 6
24 mars 2014 à 15:47
tu ne peut pas passer un tableau (enfin je crois) passe plutot un pointeur sur ce tableau
0
Crazy Legs Messages postés 635 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 27 septembre 2016 98
24 mars 2014 à 16:10
Salut,

Il y a en effet un soucis dans ton main.

bool prefixe (vector<char> &Tableau);


La fonction prefixe issue de la classe Prefixe demande une référence sur un vector<char>.

Il faut donc non seulement instancier une variable mais aussi qu'elle soit de type vector<char>.

int main(void)
{
        std::vector<char> monTableau;
	bool validation = true; 
	Prefix objPrefix;                 

	validation = objPrefix.prefixe(monTableau);

	return 0;
}


Pour ajouter des valeurs dans ton vector<char>, utilise la fonction push_back() ou std::cin pour récupérer les entrées clavier.

Bon courage :)
0