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

Страуструп. задание - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ не понимаю как сделать наследование классов http://www.cyberforum.ru/cpp-beginners/thread331333.html
Народ, здарова! Есть код: #include<iostream.h> #include<math.h> #include<conio.h> #include<string.h> enum shape{prizm,parallelepiped,cube,pyramid,cone,cylinder};
C++ Удаление максимальных элементов из массива Помогите пожалуйста написать программу на С. Задан массив действительных чисел a1,a2,...,an. Получить новую последовательность, выбросив из исходной все члены с максимальным значением. http://www.cyberforum.ru/cpp-beginners/thread331321.html
чтение из файла C++
файл текст... info face="Tahoma" size=32 bold=0 italic=0 charset="RUSSIAN" unicode=0 stretchH=100 smooth=1 aa=2 padding=0,0,0,0 spacing=4,4 outline=0... чтение... ... char font_name = {0};...
3адача на массивы ( не вышло ) C++
задача для тренировки из книги, делал, делал но блин как меня бесят эти массивы но все равно хочу знать как они работают. вот задача вот накидал, но или я туплю или не знаю я в тупике, прошу...
C++ Ветвление, Условный оператор, Циклы http://www.cyberforum.ru/cpp-beginners/thread331294.html
Всем доброго времени суток. В программировании знаний практически нет, поэтому обращаюсь к людям более грамотным в данной области. Всем кто может помочь с кодом буду признателен. Задачи привожу ниже...
C++ Вывести группы букв строки, в которых буква А встречается не менее двух раз решите пожалуйста задачу. буду очень благодарен. Ввести строку, в которую могут входить только цифры и буквы. Распечатать те группы букв, в которых буква А встречается не менее двух раз. (Группа... подробнее

Показать сообщение отдельно
AzaKendler
214 / 116 / 9
Регистрация: 30.05.2011
Сообщений: 1,772

Страуструп. задание - C++

10.07.2011, 12:38. Просмотров 925. Ответов 7
Метки (Все метки)

насколько я понял задание - есть класс
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class STC
{
 unexpected_handler old;
  public:
   STC(unexpected_handler h)
   {
    old = set_unexpectef(h);
   }
  ~STC()
   {
    set_unexpected(old);
   }
}
суть его - заменить вызов unexpeted() на свою функцию а при уничтожении вернуть все как было
Задание обобщить класс до шаблона, способного работать с разными функциями - например set_terminate()

вот детище. в конструкторе принимает указатель на функцию.
например надо set_unrxpected работает с ней, надо set_terminate - работает с этой.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
template <class A, class B> class STC
{
    A old;
    B (*st)(A);//нужен чтобы вызвать функцию в деструкторе
 
public:
    
 
    STC(B (*set)(A), A t)// первый параметр указатель на функцию которую будем пользовать из стандартных, второй хандлер на мою
    {
        st = set;
        old = set(t);
 
    }
 
    ~STC(void)
    {
        st(old);
    }
};
ВОПРОСЫ
1. при простом прогоне в мэйн первый вызов set_unrxpected возвращает NULL, так и должно быть? ведь исключение то не было сгенерировано?
Для того чтобы проверить работу шаблона пришлось вначале назначить свою функцию - в set, а потом менять ее через шаблон на другую - все справно работает, указатели на мои функции корректно меняются.
2. ОДНАКО - ПОЧЕМУ данный шаблон после его генерации и инициализации членов - сразу уничтожается? сразу идет вызов деструктора. Это настораживает. Вероятно где то ошибки?
3. Может все можно сделать гораздо проще?

Добавлено через 20 лет

простите великодушно) создавал какие-то временные объекты из шаблона, вот они сразу и грохались. Создав нормальный экземпляр - все ок. живет пока программа не завершится. Ну надо же....такая лажа, при определении. забыть дать имя экземпляру, видать невыспался.
Вопрос соответственно снят.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru