Преимущество копирования аргументов класса указателя для членов класса?

У меня есть класс проигрывателя, который использует мой класс DirectX Graphics для создания поверхностей и рисования спрайтов.

Я передаю графический класс как указатель на метод класса проигрывателя следующим образом:

**game.cpp**
m_pPlayer->Init(Graphics* graphics);

Внутри класса проигрывателя мой метод Init передает указатель на другой метод указателя. Есть ли какая-то польза от создания другого графического указателя в классе проигрывателя и копирования вместо него аргумента указателя?

Итак, это:

**player.cpp**
m_pSurface->Init(graphics, m_width, m_height);

против этого:

**player.cpp**
m_pGraphics = graphics;
m_pSurface->Init(m_pGraphics, m_width, m_height);

Я знаю, что наличие указателя m_pGraphics позволяет мне снова использовать указатель в том же классе, например, в моем методе рисования, но я все равно вызываю метод в классе проигрывателя, так что я не могу просто продолжать передавать указатель снова и снова?

2

Решение

Это просто вопрос стиля и вряд ли повлияет на производительность. Копирование указателей очень дешево, и я бы оставил его на усмотрение компилятора.

Если player использует Graphics Многое было бы разумно хранить указатель в переменной-члене, а не передавать его постоянно. Это может сделать подписи функции-члена на player короче что хорошо.

Вы должны быть уверены, что указатель члена на Graphics объект остается в силе всякий раз, когда он используется. Это все еще правильно Graphics объект и он все еще жив? Если вы передадите указатель каждый раз, у вас может не быть этой сложности.

0

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


По вопросам рекламы [email protected]