Acabo de empezar a programar en C++, y he intentado crear 2 clases donde una contendrá la otra.Nombre de clase no nombra un tipo en C++
Archivo A.h
:
#ifndef _A_h
#define _A_h
class A{
public:
A(int id);
private:
int _id;
B _b; // HERE I GET A COMPILATION ERROR: B does not name a type
};
#endif
Archivo A.cpp
:
#include "A.h"
#include "B.h"
#include <cstdio>
A::A(int id): _id(id), _b(){
printf("hello\n the id is: %d\n", _id);
}
Archivo B.h
:
#ifndef _B_h
#define _B_h
class B{
public:
B();
};
#endif
Archivo B.cpp
:
#include "B.h"
#include <cstdio>
B::B(){
printf("this is hello from B\n");
}
primera vez que compilar la clase B y luego la clase A, pero luego me sale el mensaje de error:
A.h:9: error: ‘B’ does not name a type
¿Cómo puedo solucionar este problema?
@Georg ¿por qué pusiste todo en un segmento de código? Son archivos diferentes. –
@Amir: Parecía roto antes de hacer clic en * editar * y estaba distraído :) –
Puede aceptar una de las respuestas que encontró más útiles haciendo clic en la marca de verificación además de la respuesta. Esto será útil para otras personas que tendrán el problema similar. – Naveen