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

dynamic_cast() шаблон - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ С++ Вывести арифметическое выражение http://www.cyberforum.ru/cpp-beginners/thread839685.html
Ввести строку произвольной длины, которую трактовать как арифметическое выражение, идентификаторы переменных, константы, знаки арифметических операций и скобки. Отдельные конструкции могут быть отделены одним или несколькими пробелами. Вывести арифметическое выражение, содержащееся в скобках с наивысшим приоритетом. (пожалуйста помогите:cry:)
C++ Что означает данное выражение y%=16 что означает данное выражение y%=16; http://www.cyberforum.ru/cpp-beginners/thread839653.html
Внешняя компонента 1С C++
Привет. Написал небольшую компоненту MS VS 2010. На той машинке, где писал все работает, как хотелось. На всех остальных при регистрации модуля #regsvr32 -i ExtFunc.dll пишет: "Ошибка при вызове LoadLibrary("ExtFunc.dll") - не найден указанный модуль". ExtFunc.dll в текущей папке присутствует. Может еще какие-то dll необходимы? или параметры в MS VS, что бы все было в одном dll? Спасибо.
Отсортировать строки C++
Помогите отсортировать вот таким способом двумерный массив, а именно его строки: 2 3 2 0 0 1 3 5 0 0 2 3 1 0 0 1 2 6 5 0 3 4 0 0 0 1 0 0 0 0 1 0 0 0 0
C++ Передача массива как параметра функции http://www.cyberforum.ru/cpp-beginners/thread839612.html
известно что, если нужно изменить значение переменной(а ни ее копии в стеке) нужно передать ее адрес. void func(int *a,int *b) {*a=15;*b=20; } void main {int x=1,y=2; func(&x,&y) } пытаюсь передать адрес массива компилятор ругается. убираю амперсанд - все гладко! почему???
C++ Создание и удаление объектов Люди, прошу прошения за тупой вопрос, но что-то в гугле сходу не нашел. Вот, допустим, есть класс реализующий простенькую очередь. class queue { private: int *q; int head, tail, num, length; public: queue() : head(0), tail(0), num(0), length(10) { подробнее

Показать сообщение отдельно
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
16.04.2013, 18:18     dynamic_cast() шаблон
Здорова!
Пытаюсь свой шаблон функции создать dynamic_cast() это ptr_cast() но ничо не получается.
Не могу никак сам шаблон написать вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//wablon ptr_cast
#include <iostream>
using std::cout;
using std::endl;
#include <typeinfo>
using std::bad_cast;
 
class A
{
public:
    virtual void print(){}
};
class B : public A {};
class C : public A {};
 
template<class T>
T* ptr_cast(T* ptr)
{
    cout <<"mu v tyt"<<endl; //mu cyuda daje ne popadaem
    /*try
    {
        if(typeid(*ptr)==typeid(T))
            return ptr;
        else
            throw bad_cast();
    }
    catch(bad_cast& e)
    {
        cout <<e.what()<<endl;
    }*/
}
 
int main()
{
    B bb;
    B* bbb=&bb;
    A* ab=bbb;
    
    //B* k=dynamic_cast<B*>(ab); //normal6no vuzuvaetc9
    
    B* c=ptr_cast<B*>(ab);//owibky piwet
    
    
    return 0;
}
А вот ошибка:
./ex15_1.cpp: В функции «int main()»:
./ex15_1.cpp:41:22: ошибка: нет соответствующей функции для вызова «ptr_cast(A*&)»
./ex15_1.cpp:41:22: замечание: candidate is:
./ex15_1.cpp:17:4: замечание: template<class T> T* ptr_cast(T*)


Чо я токо не пробовал методом тыка но ничо не получается, не могу никак подобрать сам шаблон. Help!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru