왜 만들 때는 c++클래스에서는 visual studio2013 에서 마법사로 필요 없을 포함하는 헤더에서 stdafx.h
-
21-12-2019 - |
문제
내가 찾은 곳는 것을 설명할 수 없다.을 사용할 때 클래스 생성 마법사 VS2013 에서 만들 수 있을 것이다.h.cpp 파일에 정의된 클래스를 기준으로.
예 헤더 파일:
#pragma once
class SomeClass
{
public:
SomeClass();
~SomeClass();
};
그때 나는 몇 가지 추가 using.나는 포함되는 헤더에서 이러한 네임스페이스 stdafx.std 및 sf 에서 SFML 에서 사용되는 내용:
#pragma once
using namespace std;
using namespace sf;
class SomeClass
{
public:
SomeClass();
~SomeClass();
};
고 모든 것이 잘 작동합니다.stdafx.h 에 포함되지 않은 헤더 파일에서만.cpp.
하지만 나와 함께 갈 수동 생성의 헤더 파일(니다.cpp)같은 클래스를 사용하여 구조
#pragma once
using namespace std;
using namespace sf;
class SomeOtherClass
{
public:
SomeOtherClass();
~SomeOtherClass();
}
고 그것은 작동하지 않습니다.대 것을 말한 그것을 찾을 수 없습니"sf"네임스페이스하지만,문제가 없"std"네임스페이스가 있습니다.
그리고 그는 것도 알고 싶습니다:이유 처음 경우에는 유효하고 대 발견하는 네임스페이스에서 미리 컴파일된 헤더와 두 번째 경우 작동하지 않습니다.
해결책
헤더파일을 컴파일되지 않 혼자입니다.만 cpp
나 c
파일은 컴파일하고 헤더파일을 복사하여 그들의 전처리기 때 당신 #include
니다.
는 것을 의미하는 경우 귀하의 모든 cpp 파일을 포함할 헤더가 있는 네임스페이스 기 포함 헤더에 오신 것을 환영합니다.기 때문에 컴파일러는 것입니다 찾을 수 있는 네임스페이스가 컴파일하기 전에 코드의 헤더에서 해당 파일이 있습니다.
그것은 좋지 않은 연습 하지만입니다.헤더에서 작동해야한다는 그 자체에 의존하지 않 cpp 파일 무언가를 하기 전에는 포함합니다.
제휴하지 않습니다 StackOverflow