好的,这里我有这个复杂类的小例子
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;
LivingObject::myNode
1a)在创建新对象时如何处理指针,我应该将它们设为对象吗?还是有其他问题?(注意:我使用的是 Ogre3D,这是教程让我设置所有内容的方式......)
2)解决上述问题后,我如何将其放入 shared_ptr 向量并访问该特定元素以获取函数(例如spawnList[15].(or ->)Attack(target);