2008-09-16 5 views
0

C++에서 다른 파일의 클래스를 인식하지 못하는 하나의 파일 내가 파일 "Particles.h"및 클래스의 구현 내부에 내 자신의 클래스가

내가 "Load.h을 파일을 원하는"Particles.cpp "내부에 "이 안에 내 수업을 인식하고, 그래서 라인을
#include "Particles.h" 

을 추가했고 파일을 인식하고 지난 모든 일에 (내가 그 클래스 내부에 변경을하지 않은 경우) 확인했다하지 않습니다.

어떻게해야합니까?

답변

2

#include 파일을 찾기 위해 컴파일러가 검색하는 디렉토리 목록은 포함 경로와 비슷하게 들립니다. 어떤 컴파일러를 사용하고 있습니까?

0

"Particles.cpp"파일에도 "Particles.h"가 포함되어 있고 파일이 같은 폴더에 있고 모두 같은 프로젝트에 속하는지 확인하십시오. 컴파일러에서 가져 오는 오류 메시지를 공유하면 도움이됩니다.

0

데브 C++, 그것은 GCC를 사용 라인은 다음과 같습니다

Stone *stone[48]; 

을하며 말한다 : " '*'토큰 전에 예상 생성자, 소멸자, 또는 형식 변환".

1

오류 코드를 나열하면 도움이 될 수 있습니다. 내 머리 꼭대기에서 Particles.h에 파일이 한 번만 포함되어 있는지 확인하십시오. 이 작업에는 두 가지 방법이 있습니다. 첫 번째는 #pragma를 한 번 사용하는 것이지만 Microsoft 특정 것일 수 있습니다. 두 번째는 #define을 사용하는 것입니다. 예 : 또한

#ifndef PARTICLES_H 
#define PARTICLES_H 

class CParticleWrapper 
{ 
... 
}; 

#endif 

, 당신은 Particles.h의 클래스에서 파생 또는 대신 포인터의 클래스의 인스턴스를 사용하지 않는, 당신은 클래스의 전방 선언을 사용하여 헤더를 포함 건너 뛰기 파일을 헤더 파일에 저장하면 컴파일 시간이 절약됩니다.

#ifndef LOAD_H 
#define LOAD_H 

class CParticleWrapper; 

class CLoader 
{ 
    CParticleWrapper * m_pParticle; 

public: 

    CLoader(CParticleWrapper * pParticle); 
    ... 
}; 

#endif 

그런 다음 Load.cpp에 particle.h 파일을 포함시킵니다.

0

Stone 클래스의 정의를 포함해야하는 것처럼 들리지만 자세한 내용 없이는 말할 수 없습니다. 관련없는 코드를 제거하고 게시하여 오류 범위를 좁힐 수 있습니까?