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

Templates (composition). exception handling run-time error - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создание окон http://www.cyberforum.ru/cpp-beginners/thread632939.html
Пожалуйста подскажите, как создавать и работать с окнами.
C++ Подскажите где ошибка, или может есть другой вариант реализации кода // Упорядочить статический массив(заполненый случайными числами), чтобы в нём чередовались чётные и нечётные элементы, разницу записываем в конец массива. // Функции не использовать. const int n=10; int ar,ch,c2=0,c=0,nch,k=0,p=0; for(int i=0;i<n;i++){ ar=rand()%11; cout<<ar<<"\t"; } cout<<endl; http://www.cyberforum.ru/cpp-beginners/thread632906.html
DLL для Журнала Событий Windows C++
кто-нибудь знает подходящую DLL с пустым сообщением? Например "%s" чтобы было тупо. Очень нужна именно зарегистрированная DLL.. а пустое сообщение для того, чтобы мусор всякий не выводился о том, что не может найти код сообщения для данного источника, и чтобы я туда подставил свои данные собственно.
Аналог функции C# ReadKey() в C/C++ C++
Уважаемые форумчаре, перешол с Си шарпа на C++. Хотел бы поинтересоваться в С шарпе, я создаваю консольное приложение чтоб защитить приложение любой клавишей вводил команду Console.ReadKey(); Хочу поинтересоваться как такую фишку оформить и какой командой на C ++
C++ Проверить, есть ли слово в массиве http://www.cyberforum.ru/cpp-beginners/thread632821.html
Нужна помощь. Вообщем , есть символьный массив , пользователь вводит слово и нужно проверить есть ли это слово в массиве по стоке,столбцам или же по диагонали т.е k y e j l d t r a e s f h j k l q w e e y k i m q t b p u i p i пользователь введ допустим : keep k y e j l d t r
C++ Серийный номер по Volume Name Guid Необходимо зная аппаратный серийный номер накопителя и его pid/vid узнать Volume Name Guid или наоборот, зная букву диска и Volume Name Guid узнать серийный номер. подробнее

Показать сообщение отдельно
Leeto
 Аватар для Leeto
7 / 7 / 0
Регистрация: 23.12.2011
Сообщений: 372
Записей в блоге: 1
04.08.2012, 20:46  [ТС]     Templates (composition). exception handling run-time error
Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
vector, кстати, эксепшнов вообще не выкидывает. Не туда полез — получай свой сегфолт.
Нет, именно 5. В данном смысле: current это указатель на верхушку стека. То есть на то место, куда будет помещён следующий элемент. Именно поэтому изначально он равен нулю, а не минус единице. Именно поэтому он фактически совпадает с количеством засунутых в стек элементов.
Код
  индекс 0 1 2 3 4 (5)
    стек - - - - -
верхушка ^

  индекс 0 1 2 3 4 (5)
    стек 4 - - - -
верхушка   ^

  индекс 0 1 2 3 4 (5)
    стек 4 9 5 7 -
верхушка         ^

  индекс 0 1 2 3 4 (5)
    стек 4 9 5 7 8
верхушка            ^
Да ничего он не меняет. Как было 5 или 0, так и осталось. Вот если бы они стали 6 или –1, тогда это беда — стек попытался всё же что-то пушнуть или попнут, а значит вылез за границу.

А насчёт задания... Ну раз сказано не делать проверок, то не делайте.
Так нет мне надо проверки делать...
да я не сомневаюсь что там с индексами все нормально... я о другом
я думаю о том что когда задача перекидывается на эксепшен в классе Аррей, то там типа прописать а ля m_current + 1 или -1 в зависимость поп это или пуш
что то типа того
C++
1
2
3
4
5
6
7
8
9
10
11
12
template <class Type> 
        void Array<Type>::SetElement(const Type& ObjType, unsigned int index)
            {   // When the index is out of bounds, ignore the “set”.
                if (index >= m_size || index < 0)  
                    {
                        
                    
                        throw OutOfBoundsException(index);
                        
                        template <class Type> 
                        Stack<Type>::m_current = m_current - 1 ;
                    }
ну там понятно что в Array надо Stack.hpp подключить
только он мне не дает так сделать
я даже m_currect в public перекинул

мол пишет

>------ Build started: Project: L5_4_2_b_ex_4, Configuration: Release Win32 ------
1> main.cpp
Array.cpp(124): error C2951: template declarations are only permitted at global, namespace, or class scope
Array.cpp(117) : while compiling class template member function 'void Array<Type>::SetElement(const Type &,const unsigned int)'
1> with
1> [
1> Type=Point
1> ]
1> Stack.cpp(23) : see reference to class template instantiation 'Array<Type>' being compiled
1> with
1> [
1> Type=Point
1> ]
1> Stack.cpp(23) : while compiling class template member function 'Stack<Type>::Stack(int)'
1> with
1> [
1> Type=Point
1> ]
1> main.cpp(48) : see reference to class template instantiation 'Stack<Type>' being compiled
1> with
1> [
1> Type=Point
1> ]
Array.cpp(125): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Array.cpp(125): error C2350: 'Stack<Type>::m_current' is not a static member
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

может быть в конструкторе ArrayException прописать что мол если m_currect больше 4 или меньше 0 то присвоить 0 или 4
Это компилятор съест или ругаться будет ??? или это вообще очень не устойчиво смотрится и мне за это отругают ???
 
Текущее время: 02:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru