2015-07-10 4 views
-1

Я имею результат класс с некоторыми свойствамиОтправка базовый адрес вектора для Итерация

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

}; 

У меня есть еще один класс, который будет создавать результат arraylike

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

};

Теперь у меня есть класс CallBack

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

Теперь мне нужен механизм для перебора результирующего массива в методе OnCallback, но мне не нужно, чтобы отправить результат в виде вектора/массива. Мне просто нужно отправить базовый адрес из метода класса А() в метод OnCallback. Как я могу достичь этого?

+0

Не хотите ли вы более простой пример? – Beta

+0

в настоящее время создали – ACS

+0

struct {int cout; Результат * res} и в методе класса A Я устанавливаю значение vales = sizeofVector; res = vec [0]. но когда я получаю обратный вызов, я могу получить только 0-е значение, а другие значения дают пустое исключение. – ACS

ответ

-2

Если вы сделаете объект типа Result Как это:

Result r1; 

, то вы можете передать это следующим образом:

Callback->OnCallback(&r1); 

Какой будет проходить адрес (из-за & символа), а не сам объект.

+0

в настоящее время создали struct {int cout; Результат * res} и в методе класса A Я устанавливаю значение vales = sizeofVector; res = vec [0]. но когда я получаю обратный вызов, я могу получить только 0-е значение, а другие значения дают нулевое исключение – ACS

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].

Смежные вопросы