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

Понимание для чего вообще нужны указатели? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Проблема с pow http://www.cyberforum.ru/cpp-beginners/thread382561.html
#include <iostream> #include <conio.h> #include <math.h> using namespace std; class Triangle { public: int a,b,c;
C++ Считать массив строк из файла Например есть файл in.txt, с него нужно считать массив строк в мемо, а в другом мемо записать эти же строки в ascii кодах, например: в файле: abc bcd def в первом мемо должно отобразиться то же самое что и в файле, а во втором их коды: 97 98 99 98 99 100 100 101 102 как реализировать такую функцию? заранее спасибо! http://www.cyberforum.ru/cpp-beginners/thread382557.html
глобал в библиотеке, не отображается в дебагере C++
Использую студию 2010, профешинал. Есть в статик библиотеке глобальная переменная, внутри этой библиотеке в дебагере ее поля вопросиками показываются, а хотя извлекается оттуда все нормально. Но очень мешает отлаживать. Мб кто встречал такие проблемы и знает решение. P.S. глобальная переменная является структурой.
C++ Очередь, С++
здраствуейте, помогите реализовать алгортитм :pardon: С++ , буду признателен =) Смоделировать очередь, в которой реализован такой механизм изъятия элемента из очереди: начало очереди всегда находится в первом элементе массива; при изъятии одного элемента из очереди, все остальные элементы перемещаются на одну позицию ближе к началу массива. После обработки всей заданной входной...
C++ Табуляция http://www.cyberforum.ru/cpp-beginners/thread382529.html
ПРивет всем передо мной стоит следующая задачка: Требуется вычислить значения yi заданной функции для ряда значений аргументов xi, i=1,…,N, при этом вычис-лив с точностью ε > 0 значения функций ряда согласно разложениям в степенные ряды. f=4/sin x + (ex – sin x)/cos x. Написал кой-чего, но работать не хочет. Помогите, а? #include <stdio.h> #include <conio.h> #include <math.h> double eps =...
C++ Дан текстовый файл f, содержащий буквы и целые числа. Выбрать все числа, которые делятся нацело на ... Дан текстовый файл f, содержащий буквы и целые числа. Выбрать все числа, которые делятся нацело на 2 и 4, но не делятся на 6. Записать эти числа в текстовый файл g, а все остальные числа – в текстовый файл h. подробнее

Показать сообщение отдельно
Bers
Заблокирован
15.11.2011, 08:36     Понимание для чего вообще нужны указатели?
Цитата Сообщение от taras atavin Посмотреть сообщение
Ни чего, но если ты заранее решил убить объект в единственном месте при завершении программы, своего решения не менял, а прогу написал один, то про себя ты знаешь, что ни где в программе неожиджанного освобождения нет по факту, а это и есть гарантия. Но лучше так не делать.
Это не гарантия. Это устное, ничем не подкрепленное соглашение.
Ошибки в программах возникают по ничайности в непредсказуемых для самих программистов местах.

Сделали класс, протестировали.
А что значит протестировать? Значит погонять все методы класса со всеми возможными аргументами. Самыми кривыми. И посмотреть, как класс будит справляться.

Но если осталась лазейка, через которую сможет забраться баг, то по теории ошибок именно через эту лазейку он туда и залезет.

Если программист думает: "клянусь! Что никогда не буду кормить классу указатели объектов созданных на стеке!" То это означает, что когда нибудь его класс обязательно крякнет именно потому, что он допустил устное соглашение, но не дал никаких гарантий.

Вот у меня был случай: сделал шаблонный низко-уровневый класс. И протестировал его вроде бы. Потом уже делал домашний проектик, и оказалось что в этом низко-уровневом классе есть баг (не качественно протестировал. Поленился)

Вот понять, что виноват именно этот низкоуровневый было не просто. Потому что авария происходит наверху по вине того, кто на несколько уровней ниже.

Пришлось в отладчике смотреть что происходит на нескольких уровнях. Понял, что косяк в этом классе. Пришлось создать отдельный проект, где отдельно подключался только этот класс один. Исправлялся, потом заново тестировался.

И только потом опять запускал основной проект, где уже запускалась исправленная версия класса. И уже смотрел, устранилась ли проблема, или нет.


И все это потому, что я не до конца обеспечил инвариант класса. Класс не отвечал полностью за безопасность своей работы.

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