2014-01-10 1 views
1

systemclass.hC++, 클래스 생성자의 매개 변수 이름

class SystemClass 
{ 
public: 
    SystemClass(); 
    SystemClass(const SystemClass&); 
    ~SystemClass(); 

    bool Initialize(); 
    void Shutdown(); 
    void Run(); 

    LRESULT CALLBACK MessageHandler(HWND, UINT, WPARAM, LPARAM); 

private: 
    bool Frame(); 
    void InitializeWindows(int&, int&); 
    void ShutdownWindows(); 

private: 
    LPCWSTR m_applicationName; 
    HINSTANCE m_hinstance; 
    HWND m_hwnd; 

    InputClass* m_Input; 
    GraphicsClass* m_Graphics; 
}; 

systemclass.cpp 후 앰퍼샌드 내 질문에

SystemClass::SystemClass() 
{ 
    m_Input = 0; 
    m_Graphics = 0; 
} 


SystemClass::SystemClass(const SystemClass& other) 
{ 
} 


SystemClass::~SystemClass() 
{ 
} 

는 systemclass.h의 정의에 관하여 :

SystemClass(const SystemClass&); 

이와 같은 클래스 이름 뒤에 "&"이 표시되는 것을 기억하지 못합니다. 의미는 다음과 같습니다.

const SystemClass& 

코드는 rastertek.com의 C++ DirectX11 Tutorial 4에서 제공됩니다.

+1

http://stackoverflow.com/questions/2564873/reference-parameters-in-c-very-basic-example-please –

+1

복사본 생성자 – BWG

답변

6

&은 인수가 값이 아닌 참조로 전달됨을 나타냅니다. 선택한 특정 멤버는 복사 생성자, 즉 값을 복사 할 때 호출되는 생성자가됩니다. (오른쪽 위치 SystemClass const&const을 가하고, 또는) 값을 복사하여 생산 될 것처럼 ... 값으로

유형 const SystemClass&을 인수를 취할 수없는 경우 유형 SystemClassconst 객체에 대한 참조입니다 .

+1

나는 항상 '&' 매개 변수에 해당 매개 변수를 나타내는 것으로 표시하십시오. 확실히 인수와 매개 변수의 앨리어싱 구현 중 하나는 참조로 전달하는 것입니다. C++ 표준이 참조로 전달하도록 요구하는지 (구현 개념) 아니면 별칭을 의미하는지 (구현이 참조로 전달 될 가능성이 높음)를 알고 있습니까? –

+2

@RayToal 나는 당신이하는 구별을 잘 모르겠다. 참조로 전달하는 것은 개념적 아이디어입니다. 일반적인 후두 구현은 "객체에 대한 포인터를 전달하고 필요할 때 포인터를 자동으로 역 참조"하는 것입니다. –