C ++, амперсанд после имени параметра в конструкторе класса

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.

2

Решение

& указывает, что аргумент передается по ссылке, а не по значению. Конкретный элемент, который вы выбрали, является конструктором копирования, то есть конструктором, который вызывается при копировании значения. Если не может принять его аргумент по значению, так как значение будет получено путем его копирования …

Тип const SystemClass& (или, поставив const в правильном месте SystemClass const&) является ссылкой на const тип объекта SystemClass,

6

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector