发送迭代的向量的基址

时间:2015-07-10 05:12:46

标签: c++

我的结果类有一些属性

class Result
{
   public:
   GetId();
   GetName();
   SetName();
   SetId();

};

我还有一个类会创建结果arraylike

class A
{
  public:
   void Method()
   {
     //array of result using vector
    Callback->OnCallback(array of result);
   }

};

现在我有回调课

class Callback
{
  public:
 void OnCallback(Result*)
 {
   //Need to loop through result;
 }
};

现在我需要机制在OnCallback方法中循环遍历结果数组,但我不需要将结果作为向量/数组发送。我只需要将Class A Method()的基址发送到OnCallback方法。我怎么能得到它?

2 个答案:

答案 0 :(得分:0)

你的问题不清楚。这有帮助吗?

#include <iostream>

void foo(int* p)
{
  for(unsigned int k=0; k<3; ++k)
    std::cout << *(p+k) << " ";
  std::cout << std::endl;
}

int main()
{
  int A[3];

  A[0] = 10;
  A[1] = 11;
  A[2] = 12;

  foo(A);

  return 0;
}

请注意,调用函数(main)通过A,而不是A[0]

答案 1 :(得分:-2)

如果您创建Result类型的对象,请执行以下操作:

Result r1;

然后你可以像这样传递它:

Callback->OnCallback(&r1);

哪个会传递地址(因为&符号),而不是对象本身。