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

Классы. Get/Set у property - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Линейные коллекции данных http://www.cyberforum.ru/cpp-beginners/thread1189526.html
Объясните, что такое итераторы и как используются. и вот еще: Цели работы: Освоение технологии реализации позиционных, линейных коллекций на примере АТД "Список". Освоение методики тестирования трудоёмкости реализации коллекций. Задание к работе: 1. Спроектировать, реализовать и провести тестовые испытания АТД "Список" для коллекции, содержащей данные произвольного типа. Тип данных задаётся...
C++ Объяснить как работает программа и сделать её с помощью подпрограмм Объяснить как работает программа и сделать её с помощью подпрограмм. #include <stdio.h> #include <conio.h> #define H 5 #define W 6 int main(){ int matrix = { {1,2,3,3,3,4}, http://www.cyberforum.ru/cpp-beginners/thread1189479.html
C++ Создание нового экземпляра дочернего класса из экземпляра базового
Всем привет! Извиняюсь, если вопрос глупый, но что-то не смог найти конкретный ответ на него... У меня есть несколько классов: все они рисуют графику кроме одного, который просчитывает физику. Таким образом, этому классу для просчет физики, постоянно будут требоваться данные из остальных классов, которые рисуют. Я быстро вспомнил про наследование, отнаследовал пару классов рисовки для...
C++ Компилятор Visual C++ платный или нет
Народ! Никак не могу найти ответ на один простой вопрос: сам компилятор Visual C++ бесплатный? Или нет? Как я понял, он входит в состав Windows SDK, который абсолютно свободного можно скачать с сайта Майкрософт. Или там какие-то другие компиляторы? И я не совсем до конца понимаю: покупая IDE MS VS, покупаешь не компилятор, а просто удобный инструмент для разработки? Или все же компилятор туда...
C++ Написать программу, которая будет зеркально выводить введенную строку http://www.cyberforum.ru/cpp-beginners/thread1189464.html
Доброго времени суток! Стоит задача: написать программу, которая будет зеркально выводить введенную строку. Условие: нельзя использовать стандартные функции библиотеки <cstring> и им подобные ОС: windows 7, x64 Компилятор: Dev-C++ # include <iostream> # include <stdlib.h> # include <conio.h>
C++ Отсортировать страны по алфавиту и вывести на экран В программу вписываешь данные о странах а она и должна сортировать страны по афавиту и тогда их виводити.але как сделать сортировку я не знаю.поможить пожалуйста. В void TComputer::Perevirka() должно сортировать страни в алфавитному порядку я не знаю как сделать. #include <iostream.h> #include <stdio.h> #include <string.h> #include <locale.h> подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6166 / 2895 / 282
Регистрация: 04.12.2011
Сообщений: 7,695
Записей в блоге: 3
27.05.2014, 20:57     Классы. Get/Set у property
GetHelp, инкапсуляция это очень широкая тема включающая отделение доступного (интерфейса) и не доступного (реализации), контроль целостности (связности) данных, реализации отложенных (ленивых) вычислений... Пока для Вас структуры важнее, а инкапсуляция может приниматься как данность. Потому как, если пойдёте знакомиться с ленивыми вычислениями, например, обогатите голову шестиугольной формой.
Отделение интерфейса от реализации обычно иллюстрируется в литературе вполне нормально, в виде автомобиля с рулём, коробкой и педалями. А вот о связности говорят реже. Тут труднее найти простую абстракцию в виде ящика или кота Фриски (в ящике)). Обычно применяют массив и контроль границ в виде проверки значения индекса на неотрицательность и не превышение поля вроде size. В принципе, этого достаточно, для начала. Попробую ещё о связности пояснить:
Вот допустим Вы пишете класс "Tреуголник". Вы знаете, что три стороны полностью задают экземпляр. Понятно, что надо бы проверять перед записью полей неотрицательность значений, но это не имеет прямого отношения к связности. А вот в чем штука ещё: задавая две любые сторона, вы должны проверять третью на не превышение суммы уже введенных! Тут интересно то ещё, что если сделать поля равноправными, то с одного раза изменить значения полей в сторону резкого увеличения и не получится! Подумайте почему.
То есть, имеет смысл контролировать связность, а это требует ограничения доступа и введение методов доступа.
Для треугольника можно бы разорвать жесткую связь данных, назначив полями две стороны и угол между ними, но речь не о том. Это просто, простой пример.
 
Текущее время: 04:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru