Fondamentalement, j'ai une liste liée qui implémente une fonction display()
qui boucle simplement à travers les éléments et imprime leurs valeurs.Comment utiliser Enum avec des chaînes dans une fonction?
que je voulais faire comme ceci:
void List::display(std::string type)
{
switch(type)
{
// Do stuff...
Le compilateur se plaint immédiatement. Mon professeur a dit que ce serait parce que la chaîne n'est pas connue à la compilation, ce qui entraîne une erreur. Cette explication semble un peu incertaine, mais il m'a suggéré d'utiliser des énumérations. Donc je l'ai recherché et il dit que la chaîne explicite à enums ne fonctionne pas. Quelque chose comme
class List
{
enum type
{
HORIZONTAL = "inline"
VERTICAL = "normal"
}
et puis, je ne sais vraiment pas. Le enum type
fait partie de la classe List, ainsi que la fonction display()
. Cela ressemble encore à une solution vraiment merdique. Néanmoins, je veux savoir si cette approche est possible.
Comment est-ce que je pourrais définir l'enum dans la fonction principale en même temps que j'appelle display()? Comme si
int main(void)
{
display("normal");
Bien sûr, les approches plus faciles sont les bienvenues. En général, comment déclarer/passer une énumération à une fonction, si possible?
C'est voodoo! Assez cool, je ne savais pas que tu pouvais le faire comme ça. Merci! – IAE
Est-ce que 'Type' doit être public pour être utilisé comme paramètre de' display'? –
Non, mais si vous le rendez privé, vous ne pouvez pas y accéder dans 'main' et vous ne pouvez donc pas appeler' display' à partir de là. – Job