systemclass.h
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&
Код взят из Руководства по C ++ DirectX11 4 от rastertek.com.
&
указывает, что аргумент передается по ссылке, а не по значению. Конкретный элемент, который вы выбрали, является конструктором копирования, то есть конструктором, который вызывается при копировании значения. Если не может принять его аргумент по значению, так как значение будет получено путем его копирования …
Тип const SystemClass&
(или, поставив const
в правильном месте SystemClass const&
) является ссылкой на const
тип объекта SystemClass
,
Других решений пока нет …