
27.07.2009, 13:15
|
|
Участник форума
Регистрация: 02.12.2007
Сообщений: 132
С нами:
9705420
Репутация:
21
|
|
Имена то так, я по быстренькому тестовую прогу написал, так как в основной проге с этой проблемой столкнулся. Идея должна быть вот примерно такая: из мэйна я передаю указатель в метод, который принимает этот указатель и ему присваивается новый адрес оператором new. Далее изменяется значение data указателя. Дальше возврат в мэйн и вывод измененного значения на экран. Но значение остается прежним.
Следовательно, как мне из другого метода, изменить адрес указателя, который передавался.
Код:
class node
{
public:
node() { cout << "constructor...\n"; }
~node() { cout << "destructor...\n"; }
void func(node* Mynode);
node(node&) { cout << "copy-constructor...\n"; }
int data;
};
void main()
{
node* Mynode = new node;
Mynode->func(Mynode);
cout << Mynode->data << endl;
}
void node::func(node *Mynode)
{
Mynode->data = 5;
Mynode = new node;
Mynode->data = 7;
}
То есть чтоб вывелось на экран значение 7, а не 5.
Не используя return в func
Последний раз редактировалось horlyk; 27.07.2009 в 13:29..
|
|
|