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

Стратегия "получение ресурса есть инициализация" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Непонятки с wchar_t http://www.cyberforum.ru/cpp-beginners/thread837244.html
Прошу помощи: что-то не так с wchar_t. Не копирует имена файлов. Содержание program_config.txt config.cfg C:\\Projects\\abx.txt static wchar_t* charToWChar(const char* text)
C++ Ошибка ms vs c++ rl Здравствуйте! Я хотел запустить прогу мою на другом компе и мне выскочила такая ошибка. This application has requested the Runtime to terminate it in an unusual way. Библиотеки VS c++ пробовал... http://www.cyberforum.ru/cpp-beginners/thread837234.html
Написать функцию, которая переворачивает строку C++
Написать функцию, которая переворачивает строку. Заголовок функции: void reverseStr (char *s); Написать программу, которая принимает от пользователя набор строк (массив строк), переворачивает все...
C++ Игровая программа ипподром"
Добрый день, помогите пожалуйста: Необходимо создать игру "Ипподром". Я сделал в консоле что мог, не могу заставить своих "сосисочек" бегать вместе, но с разной скоростью. Получается что они бегут...
C++ Работа с указателями http://www.cyberforum.ru/cpp-beginners/thread837193.html
Помогите пожалуйста объяснить, не понимаю почему число присваемое через указатель *А в кавычках, и равны ли *А и просто А??? char *A = "123456789"; unsigned B = 1; char *X = A + B; char *Y = A -...
C++ ошибка в задаче на палиндром Ребят помогите пожалуйста. Задачка найти палиндром в массиве. Писал-писал и в итоге в ф-ии последнее условие if (arr_t1==arr_t2) постоянно выводит ложь, не понимаю, почему оно мне врет((( //Дан... подробнее

Показать сообщение отдельно
DrOffset
7310 / 4406 / 998
Регистрация: 30.01.2014
Сообщений: 7,242
29.06.2014, 04:09
Цитата Сообщение от TheChosenOne Посмотреть сообщение
Если объект создается динамически,тогда подобъекты явл. динамическими...(где-то встречал в стандарте) Так что этот пункт не совсем подходит. Для недосозданных объектов там же специальный пункт.
Да, соглашусь. В таком случае рассматривать нужно было две ситуации, динамический и автоматический объект. Для них работают разные пункты. Хотя на низком уровне механизм, обеспечивающий вызов деструкторов может быть един, а может и не быть - я считаю это зависит от реализации.

Цитата Сообщение от TheChosenOne Посмотреть сообщение
Ну для того что бы закончилось время жизни объекта,надо что бы оно началось
А оно началось, есть же понятие частично сконструированного объекта.

Цитата Сообщение от TheChosenOne Посмотреть сообщение
Я отследил в отладчике весь путь потока управления.
Какой компилятор?

Цитата Сообщение от TheChosenOne Посмотреть сообщение
Хах,для локальных объектов,которые полностью созданы вызов такой же. Выходит что компилятор генерирует специальный код всегда когда кидается исключение. При нормальном выходе из области видимости вызов в стеке не помечается как External. Т.е. с областью видимости это не связано,это лишь механизм исключений. Поскольку компилятор знает что нужно вызывать для всех созданных объектов в стеке деструкторы,а лишь затем делать pop() из стека что бы добраться до след. адреса возврата что бы перейти на уровень выше и так до тех пор пока не найдется handler.
Это все понятно, но реализация может отличаться, следовательно говорить, что во всех случаях именно так - неправильно, об этом я и вел речь выше про цитату с SOF.

Я все-таки считаю, что правильнее тут сказать "зависит от реализации" - что скрывается за описанием стандарта в конкретном компиляторе. Как я уже говорил, в стандарте весьма небогатые пояснения что именно должно делаться и как. Общие фразы, "раскрутка стека", "области видимости", это видно из предыдущих цитат. Но зато описано внешнее поведение. Поэтому можно сделать вывод, что разработчики вольны сами выбирать как именно должен работать механизм исключений на низком уровне. Главное чтобы он соответствовал требованиям стандарта.

Добавлено через 2 минуты
Цитата Сообщение от TheChosenOne Посмотреть сообщение
Это можно все приписать к окончанию времени жизни объекта,но объект то создан не был -> его время жизни даже не начиналось. (это я про class scope leaving говорю )
ИМХО, время жизни объекта началось. Т.к. большая часть свойств класса уже доступна в конструкторе. Объект находится в частично сконструированном состоянии, но это не значит что его нет.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru