Тест по С++ для обучения в Nix Solutions

Привет всем! Может тут есть кто-то, кто проходил обучение iOS, или С++ в Nix Solution. Поделитесь, плиз, инфой по поводу тестирования: какого рода были вопросы, на что обратить внимание при подготовке и т.д

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Привет всем! Может тут есть кто-то, кто проходил обучение iOS, или С++ в Nix Solution. Поделитесь, плиз, инфой по поводу тестирования: какого рода были вопросы, на что обратить внимание при подготовке и т.д

Всім привіт. Будь ласка пройдіть дане опитування, мені потрібна дані для дослідження з предмету теорія ймовірності мат статистика Марковський веде. Я студент КПІ, ФІОТ, кафедра ОТ. Від опитування залежить чи буде допуск до екзамену у мого напарника. Це наше дослідження на + бали
goo.gl/forms/7PLZu5A1ovq1wX973

-

ромбовидное наследование и эксепшены в деструкторе

я просто предположил

А чего, годные темы. Достаточно Философию С++ Эккеля проштудировать и любое тестирование можно пройти.

За что бить-то? В редких случаях (ещё раз: в редких случаях; я ни в коем случае не утверждаю, что это хорошо и стоит использовать повсеместно) бывает довольно удобно.

Например, сделать класс какого-то вспомогательного scoped объекта, который накапливает данные для осуществления какой-то большой операции, а в своём деструкторе «коммитит» результаты (с возможностью вываливания эксепшена, если что-то пойдёт не так).

В целом вопрос «в каких случаях можно бросить эксепшен из деструктора» может быть довольно уместным.
1) Если деструктор вызвался уже во время раскуртки стека после вылета другого эксепшена — нефиг пытаться что-либо коммитить. На этот случай в стандартной библиотеке предусмотрена функция std::uncaught_exceptions, которую и стоит вызвать в самом начале выполнения этого деструктора. Другой эксепшен был — ничего не делаем, пусть стек раскручивается дальше. Друогого эксепшена не было — пытаемся «коммитить» и запасаемся попкорном на случай, если что-то вылетит непосредственно из процедуры коммита.
2) Такой деструктор должен быть обозначен noexcept(false), ибо по дефолту там стоит обратное (unless деструктор одного из полей класса уже обозначен noexcept(false)).

Не вижу противоречия. В нашем проекте есть один специфический класс с таким деструктором, и вся команда без проблем понимает, что и как он делает.

Не видел такого.
Да и зачем это? Пометки noexcept(false) возле деструктора вполне достаточно, чтобы был понятен тот факт, что из него может вылететь исключение.

Ну, у нас пока потребности искать не было. То ли вы переоцениваете ужасность таких деструкторов, то ли именно на нашем проекте люди такие нетипично внимательные. То ли это просто неважно: вылетел эксепшен и вылетел, значит что-то пошло не так (по не зависящим от этого куска кода обстоятельствам); а откуда именно он вылетел (то ли из явного вызова некой функции, то ли или из деструктора, который что-то «коммитит» автоматически) — в данном контексте роли не играет.

Я б краще порадив Маєрса: www.e-reading.club/book.php?book=1002058
Ці теми і багато інших охоплені, а води набагато менше і більш структуровано.

только Страуструп, только хардкор!

Страуструп — справочник про всё и вся. Майерс — советы по конкретным моментам языка. Так что в не ироничном контексте Майерс определённо выигрывает.

Страуструп — справочник про всё и вся.

сам Страуструп говорил, что он с++ знает гдето на 7-8 из 10

Естественно. Если говорить про standardese формулировки. Но они никому не нужны, кроме разработчиков компиляторов, оптимизаторов и прочих таких штук.

А для всех остальных книга Страуструпа будет неплохим справочником. Если кому-то вообще нужны эти справочники, когда есть cppreference.

Ну да, сравнивая книгу Страуструпа с cppreference я чутка утрировал.
Мой поинт был в том, что книги Майерса лучше разжёвывают подводные камни языка: что, как и почему стоит применять в тех или иных обстоятельствах. И на их фоне «The C++ Programming Language» Страуструпа выглядит больше как справочник, чем как учебник.

Если человек вообще не знает C++ и хочет разобраться с нуля, то этот «справочник» будет читаться сравнительно тяжело.
А если уже знает основы (которые можно выучить по любой другой книжке вроде Праты или Дейтелов) — может смело приступать к Майерсу. Конечно, имея cplusplus.com или cppreference под рукой, чтоб находить инфу про отдельные фичи std, которые могли не упоминаться в книге для начинающих.

Каждому своё.
Я в своё время «The C++ Programming Language» Страуструпа пропустил, основы выучил по Прате (подглядывая в референс, если что-то недопонимал), затем приступил к Майерсу и Саттеру. Уже после этого полистал Страуструпа и понял, что ничего особо не пропустил.
Не спорю, что можно было учиться и по нему. Как одна из опций. Но не как какой-то мастхев — в отличие от того же Майерса, которому, на мой взгляд, альтернатив нет.

Підписатись на коментарі