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

Где создавать объекты классов? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Чтение файла http://www.cyberforum.ru/cpp-beginners/thread841368.html
Добрый день, вопрос, конечно, повторяющийся и от поиска лопата сломалась, но 2 день не могу такое элементарное сделать, а именно: необходимо считать весь файл, и выводить строки по индексу. Как это можно сделать более удобным способом? Спасибо.
C++ Программа которая удаляет из массива все отрицательные элементы Есть программа которая удаляет из массива все отрицательные элементы. #include<iostream> #include<ctime> void Input_Arr(int *array, int n); void Output_Arr(int *array, int n); using namespace std; int main() { int i,j,n; http://www.cyberforum.ru/cpp-beginners/thread841354.html
C++ Дана матрица А с 2 строками и 10 столбцами, которая содержит данные о движении поезда на отдельных участках
Дана матрица А с 2 строками и 10 столбцами, которая содержит данные о движении поезда на отдельных участках дистанции: 1-й элемент каждого столбца представляет скорость, а 2-й — длину соответствующего участка (считать скорость на участке постоянной). Начиная с 1-го столбца, вычислять в цикле отрезки времени, за которые будут пройдены участки, и печатать их нарастающую сумму, прекращая цикл, если...
C++ QuickSort
Помогите с алгоритмом и кодом на C++ быстрой сортировки! Наработок вообще нет!
C++ Матрица (Начиная с 1-й строки матрицы, в цикле печатать показания датчиков) http://www.cyberforum.ru/cpp-beginners/thread841337.html
Дана матрица А с 2 столбцами и 10 строками. Первый элемент каждой строки предоставляет показание одного из 10 датчиков, а второй – “критическое” значение соответствующего параметра, измеряемого датчиком. Начиная с 1-й строки матрицы, в цикле печатать показания датчиков, прекращая вывод показаний и заканчивая цикл, если зафиксировано повышение критического значения параметра.
C++ Выбрал для изучения С++,что дальше? Доброго дня всем.Сразу просьба к модераторам или к тому кто следит за порядком на форуме. Т.к я впервые на форуме то просьба не судить строго (возможно пишу не там где надо). У меня несколько вопросов.Имею огромное желание овладеть каким либо языком программирования. С месяц тыркался по байсику,саму суть и основы понял но вычитал в инете что байсик старьё и без перспектив вообщем после... подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
18.04.2013, 19:07     Где создавать объекты классов?
Цитата Сообщение от shuffle Посмотреть сообщение
Или не переделывать, а предоставить к нему интерфейс доступа. Заменить private на public — вопрос 5 символов.
И? Дело не в том, что к нему нельзя достучаться, а в том, что потом ты запутаешься, что у тебя где валяется. Потому что не понимаешь, где оно должно лежать, а можешь только слушать на эту тему чужие советы. И public работает только с классами. А если ты умудрился в функцию объект запихать? Хорошо, если обоснованно, тогда ни в коем случае не вытаскивай, противоположная ошибка так же плоха. А если сдуру?

Добавлено через 9 минут
Цитата Сообщение от dimkaok Посмотреть сообщение
Да не, я имел ввиду не внутри своего класса, а внутри класса, в котором этот объект вызывается.
А вообще допускается-ли создание объекта в приватной части класса и работа с ним через get/set?
То есть это работает, но это широко распространено?
Агрегировать можно куда угодно, а часто агрегированные объекты и должны быть приватными. Думать надо, когда декларируешь и когда фактически создаёшь объекты. Думать и проектировать. Да и вообще при программировании. И решать в каждом конкретном случае, стоит ли прятать объект внутри другого класса. Часто стоит, а наследование не всегда уместно. Но вытекать этот приват должен из конкретных потребностей задачи, а не из абстрактнейших рекомендаций из всех возможных.
Цитата Сообщение от shuffle Посмотреть сообщение
придется рефакторить все места, где используется этот закрытый член (как вы и сказали, «не один раз, а сотни»).
Я имел ввиду совсем не это. 1 000 000 исправлений по всей проге в связи с изменнием видимости - это одна большая переделка. А вот передумать ещё раз и снова прятать то, что только что вытащил - это ещё большая глупость. Но когда исходишь только из посторонних советов на все случаи жизни, то передумывать можешь каждую минуту до срока сдачи и в итоге все завалить.

Добавлено через 9 минут
Цитата Сообщение от shuffle Посмотреть сообщение
Заменить private на public — вопрос 5 символов. Обратную замену сделать уже не так просто — придется рефакторить все места, где используется этот закрытый член (как вы и сказали, «не один раз, а сотни»). Чем меньше данных в открытом интерфейсе, тем меньше потенциальная связность объектов, тем более гибкая и автономная структура программы. Отсюда и рекомендация.
Проблема таких отвлечённых рекомендаций в том, что всегда найдётся псих, который посоветует всё в глобал вытащить и "обоснует" это тем, что всего лишь один объект не является частью другого. Мне не надо и 1 символ исправлять из-за областей видимости, не смотря на то, что хватает объектов в глобале с пабликом на все члены.
 
Текущее время: 00:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru