Показать сообщение отдельно

  #3347  
Старый 27.07.2009, 13:15
horlyk
Участник форума
Регистрация: 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..
 
Ответить с цитированием