#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);
}