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

Coding style или нет - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ потоки выполнения c++ http://www.cyberforum.ru/cpp-beginners/thread443624.html
В чем вся соль потоков(нитей)? Порекомендуйте мне литературу или ссылку дайте на годную статью, а то ничего не понял
C++ Работа с консольным окном Здравствуйте! Может ли программа узнать размеры консольного окна? (Требуется что-то вроде окна в Турбо паскале 7.0.) А так же может ли сама программа изменять шрифт и размер шрифта в консольном окне? Цвет фона и шрифта? И если вы знакомы с функцией system() и знаете местечко с подробным описанием этой функции, выложите, пожалуйста. http://www.cyberforum.ru/cpp-beginners/thread443622.html
C++ Написать класс для эффективной работы со строками
Написать класс для эффективной работы со строками, что позволяет форматировать и сравнивать строки, хранить в строках числовые значения и извлекать их. Для этого необходимо реализовать: • перегруженные операции присвоения и конкатенации; • операции сравнения и приведения типов; • преобразование в число любого типа; • форматный вывод строки. Написать программу, демонстрирующую работу с этим...
Вывести несколько строк в файл C++
Условие #include <iostream> #include <fstream> #include <iomanip> #include <cstring> const int N=100; std :: ifstream input; std :: ofstream output;
C++ Создайте общий массив, из данного массива и точно такого же но другого размера, и отсортируйте по уменьшению. http://www.cyberforum.ru/cpp-beginners/thread443580.html
Создайте общий массив, из данного массива и точно такого же но другого размера, и отсортируйте по уменьшению.
C++ Определите сумму элементов массива, расположенных после элемента равного минимуму. Определите сумму элементов массива, расположенных после элемента равного минимуму. подробнее

Показать сообщение отдельно
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16936 / 5341 / 328
Регистрация: 30.03.2009
Сообщений: 14,355
Записей в блоге: 26
10.02.2012, 13:46     Coding style или нет
Цитата Сообщение от Bers Посмотреть сообщение
Вообще, формулировка "большое количество кода" намекает, что "код делает очень многое"
Я не совсем правильно выразился. У тебя там может быть и три строки кода, которые в цикле из миллиона итераций вызывают другую функцию, в которой вызываются ещё функции и т.п. Но эти три строки кода будут работать долго. И всё это время память для уже ненужного объекта будет висеть занятой. Только потому, что это как бы красиво выглядит в исходнике

Цитата Сообщение от Bers Посмотреть сообщение
А в несовершенном мире говнокод оказывается жизнеспособнее красивого кода. Потому что тупо некогда заниматься красивостями
Как раз-таки нет. Дофига ситуаций, когда распиливание одной процедуры на более мелкие приводит к гавнокоду. Поэтому нельзя к программированию подходить со всякими догмами типа "функция ДОЛЖНА быть короткой", "НЕЛЬЗЯ использовать goto" и т.д. В каждом конкретном случае надо принимать конкретное решение, являющееся оптимальным в данном конкретном случае

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
bool x;
 
// Допустим, так сложилось, что во время работы нашей программы "x" всегда
// равно "false" (пользователь не пытался использоватьнекоторые фичи программы)
x = false;
...
 
if (x)
{
  // В этот блок мы никогда не попадём, а следовательно, объект никогда не будет
  // создан (т.е. никогда для него не вызовутся конструктор и деструктор). Это справедливо
  // как для автоматического объекта, так и для статического, который помещён вовнутрь
  // лексического блока. Т.е. сэкономили память и время исполнения
  std::string str;
  ...
}
Цитата Сообщение от AzaKendler Посмотреть сообщение
не подойдет для такого управления?
Не подойдёт, потому что компилятор по достижении закрывающей фигурной скобки автоматически влепит вызов деструктора (и на это ты повлиять никак не можешь). Таким образом, у тебя будет два вызова деструктора. Деструктор ручками можно вызывать ТОЛЬКО в том случае, если динамический объект создавался при помощи конструкции "placement new"
 
Текущее время: 14:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru