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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2010, 03:03   #1
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию результат базовый класс и наследование

есть класс
Код:
	class RefObject
	{
	private:
		long ref;
	public:
		RefObject();
		const phLib::RefObject* Get();
		void Release();
		virtual ~RefObject();
	};
соответственно от него будут дети делатся(class Stringublic phLib::RefObject), как я проверял в студии, нужно кастовать чтоб сделать присвание(phLib::String* bla=String->Get();//String это в данной строке объект этого класса)
можно ли как то сделать чтоб обойтись без кастинга?(в принципе я могу писать ручками все, но хотелось бы обойтись без этого(может шаблонами можно или как то иначе?))

надеюсь нормально обьяснил?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.09.2010, 02:29   #2
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Это ведь вроде down cast и компилятор не знает, как инициализировать члены, которых нет в базовом классе.
Если совсем нагло, то я бы сделал так
Код:
class RefObject
{
///

public:

template <class T> operator T*(void)
{
    return (T*) Get();
}
///
};
А по уму надо бы еще конструктор и оператор копирования, и dynamic_cast<>
как Вы считаете?

Последний раз редактировалось EUGY; 21.09.2010 в 02:48.
EUGY вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать базовый класс sT1mfy Общие вопросы Delphi 3 11.06.2010 21:38
Класс, наследование nazavrik Общие вопросы C/C++ 8 29.01.2010 16:25
Базовый и производный классы! Наташенька Общие вопросы C/C++ 6 21.05.2009 16:24
Наследование: абстрактный класс zak Общие вопросы C/C++ 4 22.12.2007 13:49
Вернут указатель на базовый класс Crucian Общие вопросы C/C++ 2 08.11.2007 18:10