我有一个名为actorVector的向量,它存储一个actorManager类型的对象数组。
actorManager类有一个私有属性,它也是GLFrame类型的对象。它有一个访问器getFrame(),它返回一个指向GLFrame对象的指针。
我已将actorVector的指针传递给函数,因此它是指向actorManager类型的对象向量的指针。
我需要将GLFrame对象作为参数传递给此函数:
modelViewMatrix.MultMatrix(**GLFrame isntance**);
我目前一直在尝试这样做,但我没有得到任何结果。
modelViewMatrix.MultMatrix(*(*actorVector)[i].getFrame());
有什么想法吗?
答案 0 :(得分:3)
假设MultMatrix
通过值或引用(而非指针)获取ActorManager
,那么您需要这样:
modelViewMatrix.MultMatrix(*((*actorVector)[i].getFrame()));
请注意,优先规则意味着上述内容相当于:
modelViewMatrix.MultMatrix(*(*actorVector)[i].getFrame());
然而,这就是你已经拥有的东西,所以必须有一些你不告诉我们的东西......
答案 1 :(得分:0)
尝试modelViewMatrix.MultMatrix( *(*p)[i].getFrame() );
#include <vector>
using std::vector;
class GLFrame {};
class actorManager {
/* The actorManager class has a private attribute, which is also an
object of type GLFrame. It has an accessor, getFrame(), which returns
a pointer to the GLFrame object. */
private:
GLFrame g;
public:
GLFrame* getFrame() { return &g; }
};
/* I need to pass the GLFrame object as a parameter to this function:
modelViewMatrix.MultMatrix(**GLFrame isntance**); */
class ModelViewMatrix {
public:
void MultMatrix(GLFrame g){}
};
ModelViewMatrix modelViewMatrix;
/* I have a vector called actorVector which stores an array of objects of
type actorManager. */
vector<actorManager> actorVector;
/* I have passed a pointer of actorVector to a function, so its a pointer
to a vector of objects of type actorManager. */
void f(vector<actorManager>* p, int i) {
/* I need to pass the GLFrame object as a parameter to this function:
modelViewMatrix.MultMatrix(**GLFrame isntance**); */
modelViewMatrix.MultMatrix( *(*p)[i].getFrame() );
}
int main() {
f(&actorVector, 1);
}