es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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 A;
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!

Tags:  ,

Answer

  1. Avatar for davy.ai

    Puede usar la variable de plantilla Test fuera del alcance de switch declarándola antes de la declaración switch. Por ejemplo:

    Test A;
    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.

Comments are closed.