Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Аргументы шаблонного метода как объекты - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Шаблоны и определение SSE типов на этапе компиляции http://www.cyberforum.ru/cpp-beginners/thread919377.html
Добрый вечер. Задача следующая: для каждого базового типа даных int, float и double есть свой intrinsic SSE тип - __m128i, __m128 и __m128d соответсвенно. Предположим, что для каждого перечисленного...
C++ Очистка/удаление файла *.txt с помощью fstream Как с помощью#include <fstream> очистить/удалить файл по заданному пути? http://www.cyberforum.ru/cpp-beginners/thread919375.html
Программа, заменяющая английские сокращения слов C++
Программа должна заменять слова с сокращениями (don't, can't, won't, haven't, it's и т.д.) на их полные альтернативы (do not, cannot, will not и т.д.). Также нужно обработать текстовый файл, из...
C++ Не могу понять 2 строки кода функции из методички
Это код добавления элемента в линейный двунаправленный список. Не пойму 12 и 13 строки. Указатель pCurrent->next(указатель на след. элемент списка) всегда будет пустовать, т.к. в конце функции...
C++ Работа с видео http://www.cyberforum.ru/cpp-beginners/thread919341.html
Здравствуйте, есть такая задача создать видео плеер с функций изменения контраста, плеер создаю использую стандартный компонент windows media player, а вот с контрастом проблема, подскажите плизз...
C++ Как вызвать конструктор для неизвестного объекта? Добрый вечер. Помогите мне с задачей. Хочу написать шаблонный класс вектор. И в конструкторе по умолчанию нужно прописать конструкцию вызова того конструктора, объекты которого будет хранить это... подробнее

Показать сообщение отдельно
Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2

Аргументы шаблонного метода как объекты - C++

08.07.2013, 00:09. Просмотров 344. Ответов 5
Метки (Все метки)

Не могу решить одну задачу.

вот три класса

C++
1
2
3
class win  {};
class obj1 {};
class obj2 {};
Есть класс win, в котором есть функция (я хочу, чтобы она принимела в качестве аргументов указатель либо на obj1, либо на obj2)

C++
1
2
3
4
5
6
7
8
9
10
11
template <class A>
void Window::add_elem(A *elem)
{
        if(typedef(elem) == obj1)  elem->set_parent(this);   // метод из класса obj1 (есть только там)
        if(typedef(elem) == obj2)  elem->show();               // метод из класса obj2 (есть только там)
}
 
win win1;
obj1 object;
 
win1.add_elem(&object);

Я понимаю, что это elem->set_parent(this); неправильно, но как мне добиться желаемого результата?

Добавлено через 4 минуты
Вот ошибки

C++
1
2
3
4
5
6
7
 Object: недопустимое использование этого типа в качестве выражения
см. объявление 'obj1'
см. ссылку на создание экземпляров функции шаблон при компиляции "void win::add_elem<obj1>(A *)"
1>        with
1>        [
1>            A=obj1
1>        ]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru