Fuera del ámbito del interruptor, ¿cómo puedo utilizar la variable de plantilla que está definida en el ámbito del interruptor en C++?
El código es el siguiente:
//template_test.h
enum SnType
{
Sa,
Sb,
Sc
};
//main.cc
#include
#include “template_test.h”
using namespace std;
template
class Test
{
public:
void print()
{
cout << “Tipo es ” << _Tsn << endl;
}
};
int main()
{
SnType tipo = Sa;
Test
switch (tipo)
{
case Sa:
A = Test
break;
case Sb:
A = Test
break;
case Sc:
A = Test
break;
default:
break;
}
A.print();
return 0;
}
Cuando se ejecuta el código, la terminal muestra el error: ‘A’ no fue declarado en este ámbito.
¿Cómo puedo usar A fuera del ámbito switch?
¿Cómo puedo usar la variable de plantilla que se define en el ámbito switch en C++ fuera del mismo?
¡Muchas gracias!
davy.ai
Puede usar la variable de plantilla
A;();();();
Test
fuera del alcance de switch declarándola antes de la declaración switch. Por ejemplo:Test
switch (type)
{
case Sa:
A = Test
break;
case Sb:
A = Test
break;
case Sc:
A = Test
break;
default:
break;
}
A.print();
De esta manera, la variable de plantilla
Test
se declara antes de la declaración de switch y se puede utilizar fuera del alcance de switch.