У меня есть класс камеры, который имеет два указателя в качестве параметров:
Camera::Camera(
float fOVDeg, float nearCull, float farCull,
float xPos, float yPos, float zPos,
D3DMATRIX* matProjection, D3DMATRIX* matView)
{
this->SetCamera(fOVDeg, nearCull, farCull);
this->AdjustCamera(xPos, yPos, zPos);
matProjection = &(this->projection);//gets the addresses of two private members
matView = &(this->view);
}
, и это код, который вызывает его:
D3DMATRIX* matProjection,* matView;
//called once
void Initialise(HWND hWnd)
{
camera = new Camera(
45.0f, 1.0f, 100.0f,
0.0f, 9.0f, 24.0f,
matProjection, matView);
...rest of code...
в основном проблема заключается в том, что я хочудва указателя в коде, который вызывает конструктор камеры для сохранения адресов памяти классов камеры, два закрытых члена, чтобы я мог что-то делать с ними!Проблема в том, что это работает нормально, но как только конструктор завершает работу, указатели становятся равными нулю (0x00000000).Я не имею понятия почему!Закрытые члены камеры по-прежнему имеют значения, потому что раньше я просто собирал их значения с помощью геттеров, и это работало нормально.