2015-04-01 24 views
0

與C++相當新,所以請溫和。獲取STR8的一點是:C++沒有合適的從「Camera」到「Actor *」的轉換功能

首先演員類:

class Actor 
{ 
vec3 location; 
vec3 rotation; 
} 

然後相機類:

class Camera: public Actor 
{ 
float fov; 
} 

最後控制器類:

class Controller 
{ 
Actor* pawnActor; 
void setPawnActor(Actor* actor); 
} 

現在的問題...

考慮到相機的演員派生我想是這樣......

controller.setPawnActor(camera); 

......但是編譯器說:從「照相機」沒有合適的轉換功能,以「演員*」的存在。 當然,我可以使用:void setPawnActor(Camera* camera);,但對於可能成爲'PawnActor'的每個可能演員創建一個函數似乎毫無意義。有任何想法嗎???

再次聲明,我新來的整個C++的事情,所以......

感謝您的時間大家。

+1

您需要通過AA變量,它是一個'相機*'不是'Camera' – NathanOliver 2015-04-01 15:09:50

+1

'從「攝像機」,以「演員*'你傳遞一個對象或指針? – 2015-04-01 15:10:28

回答

1

將相機傳遞爲&相機如果相機只是一個對象,因爲函數期望指針不是對象。

+0

感謝您的快速響應大家! 'Camera * myCamera = new Camera();'似乎解決了我以前的所有問題。 – user4738580 2015-04-01 20:05:47

相關問題