왜 만들 때는 c++클래스에서는 visual studio2013 에서 마법사로 필요 없을 포함하는 헤더에서 stdafx.h

StackOverflow https://stackoverflow.com//questions/25028808

문제

내가 찾은 곳는 것을 설명할 수 없다.을 사용할 때 클래스 생성 마법사 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"네임스페이스가 있습니다.

그리고 그는 것도 알고 싶습니다:이유 처음 경우에는 유효하고 대 발견하는 네임스페이스에서 미리 컴파일된 헤더와 두 번째 경우 작동하지 않습니다.

도움이 되었습니까?

해결책

헤더파일을 컴파일되지 않 혼자입니다.만 cppc 파일은 컴파일하고 헤더파일을 복사하여 그들의 전처리기 때 당신 #include 니다.

는 것을 의미하는 경우 귀하의 모든 cpp 파일을 포함할 헤더가 있는 네임스페이스 포함 헤더에 오신 것을 환영합니다.기 때문에 컴파일러는 것입니다 찾을 수 있는 네임스페이스가 컴파일하기 전에 코드의 헤더에서 해당 파일이 있습니다.

그것은 좋지 않은 연습 하지만입니다.헤더에서 작동해야한다는 그 자체에 의존하지 않 cpp 파일 무언가를 하기 전에는 포함합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top