• [С++ ]Поставил begin — поставь и end. Как распознать вложения и правильно поставить в коде end?

    valent_in_habrahabr
    @valent_in_habrahabr Автор вопроса
    Для решения задачи использовал стек.
    Ответ написан
    Комментировать
  • Есть ли правильные настройки для Visual Studio 2015?

    valent_in_habrahabr
    @valent_in_habrahabr
    #include "stdafx.h"
    #include <iostream>
    
    int main()
    {
    	std::cout << "Hello World!\n";
    	return 0;
    }

    Без "stdafx.h" не пойдет. Из iostream.h надо убрать расширение, это не Си. std не указан.
    Ответ написан
    Комментировать
  • При вызове delete несколько раз,вызывается деструктор столько же раз,че за?

    valent_in_habrahabr
    @valent_in_habrahabr
    У меня вопрос(опытные люди, ответе мне, у кого стаж более 3-5 лет на с++) это выражение
    "здесь могут и ногу отстрелить."
    . применяют те кто изучали С++ по youtube? Дело в том, что я изучал С++ по классическим учебникам и всегда следовал правилам придуманные не для того, что бы их нарушали. И я не могу понять как в С++ себе можно ногу отстрелить, если строго следовать правилам? Или это всего навсего выражение новичков/быдлокодеров которые погорели из-за невнимательности на таких вещах как работа с памятью(как пример)? Я может не знаю, что то? Подскажите.

    Есть правила, есть стандарты которые придумали умные люди что бы им придерживались а не нарушали!
    Item *item = new Item;
    delete item;
    delete item;
    delete item;

    Вы заняли память потом её освободили, на этом всё. Как вы освободите повторно уже пустой раздел памяти(который освободили уже)?
    Ответ написан
  • Какие есть книги по принципам работы языков программирования?

    valent_in_habrahabr
    @valent_in_habrahabr
    Такие книги есть, но они вам не понравятся т.к. рассчитаны не на новичков и читаются не так просто как учебники по программированию на языке 'X'.
    Ознакомится можно, но без фанатизма. Почитайте по диагонали и не тратьте время, если не понимаете, потом вернетесь.
    Вот книги на русском:
    1. Введение в компьютерные науки. Общий обзор
    2. Языки программирования. Концепции и принципы
    3. Введение в теорию языков программирования
    4. Компиляторы. Принципы, технологии и инструментарий
    5. Код. Тайный язык информатики
    6. Построение компиляторов (Вирт)
    7. Разработка операционной системы и компилятора. Проект Оберон
    8. Классика программирования. Путешествие по исторической статье Тьюринга о вычислимости и машинах Тьюринга


    Но мне на ум приходит только одна мысль - посоветовать к тому, что посоветовал в соседнем вопросе лучше почитать книги: Алгоритмы и структуры данных(Н. Вирт) и Структура и Интерпретация Компьютерных Программ.
    Ответ написан
    2 комментария
  • Правильно ли сразу начинать изучение C++?

    valent_in_habrahabr
    @valent_in_habrahabr
    Даже, если нет опыта в программировании всё равно стоит начать с С++, потом, остальные ЯП изучать будете комфортно, приятно и самое главное быстро. Я бы мог сказать, что 'C' стоит изучать, если вы хотите заниматься системным программированием(например в Linux) или вам нужен низкоуровневый ЯП, но тогда 'C' надо изучать с ассемблер для большего эффекта. Из книг советую начать с С. Прата "Язык программирования C++. Лекции и упражнения" из-за того что в книге есть хорошие задачи для новичков в каждой главе. Так же стоит уделить внимание книгам авторов: Стенли Б. Липпман, Г. Шилдт и разумеется Б. Страуструп. После того как вы прочтете все книги, вы получите полное понимание, так сказать каждый автор дает посмотреть с определеной стороны на С++ и в целом вы не упустите всех деталей. Также очень советую серию книг C++ In-Depth. И разумеется после всего этого стоит прочитать такие книги как: "Эффективное использование C++", "Скользкие места С++", "Безопасное программирование на C и C++" и т.д. Стоит одновременно заниматься алгоритмами (например Седжвик 3-е издание по С++).
    Рад был подсказать, если есть вопросы - задавайте.
    Ответ написан
    2 комментария