изменение объектов внутри функций

#c #class #function

#c #класс #функция

Вопрос:

У меня есть функция, которая имеет два параметра, оба объекта. Я изменяю эти объекты внутри функции, и мне нужно увидеть изменения впоследствии. Но указатели не работают. Есть идеи?

 void foo(apple amp;a,apple amp;b)
{
  //change a and b
}
main()
{
  apple a,b;
  foo(a,b);
  //a and b are the same as befor calling foo  `  
}
  

Спасибо.

Комментарии:

1. Как вы «изменяете» эти объекты внутри метода?

2. Пожалуйста, опубликуйте какой-нибудь фактический компилируемый код, который демонстрирует проблему. Принцип передачи ссылок на объекты должен быть правильным.

3. И указатели также должны работать

Ответ №1:

Вы имеете в виду изменение методов передаваемых вами классов? Вам нужно будет использовать ‘->’, если вы это имеете в виду.

 class apple {
    public:
        int weight; 
}

void foo(apple *a,apple *b) {
    a->weight = b->weight;
}

main() {
    apple a,b;
    foo(amp;a,amp;b);
}