さて、ここに私の複雑なクラスのこの小さな例があります
class LivingObject
{
Ogre::SceneNode* myNode;
Gorilla::ScreenRenderable* myScrRend;
Gorilla::Layer* myRendLayer;
Gorilla::Rectangle* myRendRect;
int Health,Energy,Strength,Dexterity,Intelligence;
float Speed,posX,posY,posZ;
//Assortment of functions
};//Note: Specific members and functions are public/private, but is not relevant
ここにいくつかのゲームクラス情報があります
class myGame
{
Ogre::Viewport* myViewport;//random
LivingObject LiveObjectArray[100]//question 1: holds the array of objects from a parsed file
std::vector<std::tr1::shared_ptr<LivingObject> > spawnList;//question 2
};
1)後でコピーできる場所をどのように宣言する必要がありLivingObject
ますか(現在使用している方法ではエラーが発生しますconversion from 'LivingObject*' to non-scalar type 'LivingObject' requested
:)LivingObject TestObj=new LivingObject;
1a)新しいオブジェクトを作成するときのように、ポインターをどのように処理LivingObject::myNode
しますか?それらをオブジェクトにする必要がありますか?または何か他の問題がありますか?(注:私はOgre3Dを使用しており、これがチュートリアルですべてを設定する方法です...)
2)上記が解決されたら、それをshared_ptrベクトルに入れて、関数の特定の要素にアクセスするにはどうすればよいですか(例:spawnList[15].(or ->)Attack(target);