Resultados de la búsqueda a petición "forward-declaration"

2 la respuesta

¿Por qué se debe proporcionar el tamaño de una enumeración cuando se declara hacia adelante?

Simplemente no puedo ver por qué el tamaño de la enumeración es relevante para el compilador, mientras que el tamaño de la clase no lo es. Mi ejemplo de código: class A; enum E; // must be enum E : int; in order to compile void f(const A ...

4 la respuesta

Forward declara la definición de tipo pública de una clase en c ++

Estoy tratando de simplificar un montón de archivos de encabezado "incluir espagueti" mediante el uso de declaraciones hacia adelante y moviendo #incluye en el archivo de implementación. Sin embargo, sigo encontrando el ...

3 la respuesta

¿Por qué una clase amiga C ++ necesita una declaración de reenvío solo en otros espacios de nombres?

Supongamos que tengo una claseF eso debería ser amigo de las clasesG (en el espacio de nombres global) yC (en espacio de nombresA) ser amigo deA::C, F debe ser declarada hacia adelante.ser amigo deG, sin declaración adelantada deF es ...

5 la respuesta

forward declaración y espacios de nombres (c ++)

Mi problema Tengo dos clases, clase A y B, así que obtuve A.h y A.cpp y B.h y B.cpp. A necesita saber B y B necesita saber A. Lo resolví de la siguiente manera (no sé por qué tiene que ser así ...) A.h: #include "B.h" class A{ ... ...

2 la respuesta

Clase de nombre de tipo desconocido

2 la respuesta

¿Cómo reenviar declarar una clase de plantilla C ++?

Dada una clase de plantilla como la siguiente:

8 la respuesta

¿Cuáles son los inconvenientes de la declaración a plazo?

Me pregunto si hay algún inconveniente para usar declaraciones directas en todos los lugares cuando sea posible. Esto es si mi encabezado contiene solo declaraciones. egún tengo entendido, el uso de la declaración directa acelera el tiempo ...

3 la respuesta

“Creación de instancias implícita de una plantilla no definida” cuando se reenvía la clase de plantilla.

4 la respuesta

La declaración de clase de reenvío utilizada en la función de plantilla no está compilada por clang ++

3 la respuesta

¿Por qué no se anticipa la declaración de trabajo de clase cuando la clase se incluye en otra clase?

Esto compila #include "Sprite.h" class GameObject { public: int x, y, w, h; Sprite sprite; public: GameObject(); GameObject(int _x, int _y, int _w, int _h); virtual ~GameObject(); };Esto no class Sprite; class GameObject { public: int x, y, w, ...