Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2012, 15:52   #1
Yacudzer
 
Регистрация: 28.05.2011
Сообщений: 4
По умолчанию auto_ptr (и иже с ним)

Подскажите, пожалуйста.
Есть класс, который содержит контейнер auto_ptr. Возможно ли сделать так что бы в процессе жизни этот контейнер изменял значение.
Например, конструктор задает ему NULL, но далее может быть создан объект и контейнеру присвоить ссылку на объект? И будет ли корректным такое использование auto_ptr? Чем лучше его заменить?

Код:
#include <iostream>
#include <memory>

using namespace std;

class one {
private:
	int a;
public:
	one(int newa);
	~one();
	int geta();
};

class two {
private:
	auto_ptr<one> first;
public:
	two();
	~two();
	void setfst(one*);
	int getfst(void);
};

int two::getfst(void) {
	return first->geta();
}

void two::setfst(one* qq) {
	//??
	//two
}

one::one(int newa){
	a=newa;
}

one::~one(){
	a=-1;
}

int one::geta() {
	return a;
}

two::two() : first(NULL){
}

two::~two(){
}

int main (int argc,char **argv) {\
	two v;
	v.setfst(new one(12));
	printf("one.a=%d",v.getfst());
	return 0;
}
Yacudzer вне форума Ответить с цитированием
Старый 04.07.2012, 17:40   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Yacudzer
Код:
void two::setfst(one* qq) {
	first.reset(qq);
}
старый объект удалится
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
коллекции, деревья и иже с ним с или с++ elris Фриланс 4 06.10.2011 13:53
g++ pimpl + auto_ptr pproger Общие вопросы C/C++ 1 19.03.2011 11:02
Combobox и иже с ним Bezdar Microsoft Office Excel 1 24.06.2010 16:58
Вирус (?) заблокировал Мозиллу, Оперу и иже с ними spyonka Безопасность, Шифрование 14 13.05.2009 12:38
Combobox и иже с ним Shawn Компоненты Delphi 7 13.12.2007 18:15