Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/16: Рейтинг темы: голосов - 16, средняя оценка - 4.69
0 / 1 / 0
Регистрация: 12.10.2018
Сообщений: 10

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

12.10.2018, 14:36. Показов 4096. Ответов 49
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Изучаю С++. И маленький перфекционист внутри меня не даёт покоя. Допустим есть класс.В нем находится поле класса типа массив(data) и публичный метод для доступа к ячейке этого массива(getCell). Далее в классе нужен ПРИВАТНЫЙ метод для обработки строки массива, который проверяет некоторые ячейки в строке(isMyRow). Как в этом методе правильней(оптимальней) обращаться к ячейкам массива: c помощью метода getCell или с помощью индексации[].
По идее индексация оптимальней, так как не задействует стек. Так что скажете ? Или я всё таки ерундой занимаюсь, задавая такие глупые вопросы??
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class MyClass{
private:
int data[3][3];
bool isMyRow(int row);
public:
int getCell(int x, int y);
 
};
 
 
...
 
 
bool  MyClass::isMyRow(int i){
//как надо?
//так?
return (data[row][0]==data[row][1] );
 
//или так?
// return getCell(row,0)==getCell(row,0);
 
}
P.S. Вообще стараюсь не задавать таких посредственных вопросов и указатели более менее понимаю. Но эти мелочи не дают покоя. И гуглил, но гугл молчит.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.10.2018, 14:36
Ответы с готовыми решениями:

Обьявление методов доступа к данным класса.
Не компилируется программа //Обьявление класса Cat. //Переменные-члены обьявляются закрытыми, а открытые методы доступа ...

Напишите реализацию методов, предоставляющих доступ к данным класса. Отобразите в программе работу этих методов
Реализация методов класса. Напишите реализацию методов, предоставляющих доступ к данным класса. Отобразите в программе...

Сравнение скорости доступа к данным
Просто ужас берёт... http://www.rsdn.ru/article/db/DBSpeed.xml

49
0 / 1 / 0
Регистрация: 12.10.2018
Сообщений: 10
16.10.2018, 21:40  [ТС]
Студворк — интернет-сервис помощи студентам
Я не волнуюсь, хотя эта "война" длится долго. А вообще я просто пытаюсь наверстать упущенное. Можно сказать, я вернулся в мир программирования спустя некоторое время.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.10.2018, 21:49
Цитата Сообщение от alexbez Посмотреть сообщение
Я не волнуюсь, хотя эта "война" длится долго. А вообще я просто пытаюсь наверстать упущенное. Можно сказать, я вернулся в мир программирования спустя некоторое время.
К какому выводу пришли по теме? Нужны ли внутри класса его внешние интерфейсы?
Цитата Сообщение от alexbez Посмотреть сообщение
int getCell(int x, int y);
вот этот Ваш геттер никак не может изменить данные. Он возвращает значение и совершенно бесполезен и безопасен поэтому, в смысле изменения данных. Но что-то из обсуждавшегося Вы поняли?
0
0 / 1 / 0
Регистрация: 12.10.2018
Сообщений: 10
16.10.2018, 21:51  [ТС]
IGPIGP, Для себя я решил, что нужны. А так наверно не все однозначно. Разные программисты, разные религии С++... Но на своём уровне я могу об этом много не думать.
Об инвариантах и изменяемых данных тоже понял более-менее (что должен был понять)
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.10.2018, 21:58
Цитата Сообщение от alexbez Посмотреть сообщение
Для себя я решил, что нужны.
Это неудача.
Цитата Сообщение от alexbez Посмотреть сообщение
Разные программисты, разные религии С++...
Никаких религий. Данный вопрос не является делом вкуса, привычки или стиля. Это простой и фундаментальный вопрос.
Цитата Сообщение от alexbez Посмотреть сообщение
Но на своём уровне я могу об этом много не думать.
Уровень сам не повысится. Но долго-то и не нужно тут думать, для общего ответа, а нюансы - дело всей жизни, но их тут не требуется пока.
Впрочем как знаете. Сама тема, хоть и проста, а оказалась неожиданно интересной, именно, в обсуждении.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
17.10.2018, 11:25
Цитата Сообщение от IGPIGP Посмотреть сообщение
nonedark2008 написал первым всё что нужно
он написал лажу.
нормальные люди так не делают.

потому что нет ни одной причины усложнять себе жизнь на ровном месте.

Добавлено через 49 секунд
Цитата Сообщение от IGPIGP Посмотреть сообщение
написано достаточно и есть люди которые поняли.
что-то я их здесь не наблюдаю.
ни одного.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
17.10.2018, 20:39
Цитата Сообщение от hoggy Посмотреть сообщение
ни одного.
Даже ТС понял
Цитата Сообщение от alexbez Посмотреть сообщение
Теперь стало понятнее. Спасибо за разъяснение проектирования.
но
Цитата Сообщение от hoggy Посмотреть сообщение
что-то я их здесь не наблюдаю.
hoggy, - не вижу, не понимаю, не наблюдаю, это же ваши проблемы. Я уж не говорю о том, что интерфейс от реализации учат отделять с самого начала. Но вот avgoor, не смог выразить вам своего недоумения. Вы не понимаете. Но вот что интересно. Мне приходилось писать ахинею (кто без греха), но аргументация всегда закон. Как можно не признать ошибку? Вы же, мало того, что стремитесь сказать последнее слово, но делаете это без аргументов (их и быть не может, так как вы неправы) и по-хамски:
Цитата Сообщение от hoggy Посмотреть сообщение
он написал лажу
Я предвижу, что и тут вы скажете, что-то в ответ. Валяйте. Больше говорить с вами не о чём.
1
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
18.10.2018, 12:23
Цитата Сообщение от IGPIGP Посмотреть сообщение
Даже ТС понял
тс схавал бред, который ему втюхал говнокодер.
у тс сейчас нет собственного понимания момента.

а вот вы, судя по развитию сюжета говнокодера совсем не поняли.

вы не сможете привести пример кодом, который иллюстрирует позицию говнокодера.

если бы у вас было такое понимание, и вы смогли бы привести такой пример,
полагаю вам стало бы очевидно, почему пример - пример говнокода.
а даже если и нет, то думаю, мне не составит труда вам это разъяснить.

сейчас же вы какую то херню на пальцах пытаетесь загнать,
и мне не очевидно:
нафига вы мне все это пишите, что сказать пытаетесь,
и какое это вообще имеет отношение к сабжу?

Цитата Сообщение от IGPIGP Посмотреть сообщение
не вижу, не понимаю, не наблюдаю, это же ваши проблемы.
если вы не в состоянии ясно донести свои мысли: нафига вообще пытаться вас понять?
могу просто послать вас в жопу, и через 30 секунд забыть о вашем существовании.
вы - не проблема.

Цитата Сообщение от IGPIGP Посмотреть сообщение
Я уж не говорю о том, что интерфейс от реализации учат отделять с самого начала. Но вот avgoor, не смог выразить вам своего недоумения. Вы не понимаете.
это здесь причем?

вот к чему вы вообще заявили: "интерфейс учат отделять от реализации" ?

к чему это было сказано?

я не понимаю.

потому что эта тема не имеет ни малейшего отношения ни к сабжу,
ни к господину avgoor

ваши тезисы чем то смахивают на какой то рандомный бред.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
18.10.2018, 19:50
Цитата Сообщение от hoggy Посмотреть сообщение
всегда, когда есть функция-член для доступа к данным,
нужно использовать именно эту функцию-член.
Вот это и есть бред.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
19.10.2018, 12:09
Цитата Сообщение от IGPIGP Посмотреть сообщение
Вот это и есть бред.
- что это?

- это инструмент специально предназначенный для доставания кокосов.

- но использовать специальный инструмент специально предназначенный для доставания кокосов - это бред! нужно делать через жопу. и что бы кокосы могли упасть на голову, и раскроить башку.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
19.10.2018, 20:02
Цитата Сообщение от hoggy Посмотреть сообщение
это инструмент специально предназначенный для доставания кокосов.
Это интерфейс. Средство взаимодействия с объектом извне. Внутри он может использоваться, но зачастую это бред. Нет это не бред. Это непонимание основ. Для того чтобы изменить состояния не нарушая инвариант, но за пределами досягаемости одного шага, можно конечно соорудить новый объект, а старый выбросить. Для этого придётся использовать указатели. Это потому что ссылка бесполезна в этом кейсе, а оператор присваивания тоже (как вы утверждаете) должен использовать публичный метод который ограничен инвариантом. Случай с треугольником вам непонятен и всё сказанное не вам. Может кому-то интересно будет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.10.2018, 20:02

Напишите реализацию методов, предоставляющих доступ к данным класса
Реализация методов класса. Напишите реализацию методов, предоставляющих доступ к данным класса. Отобразите в программе...

Почему дружественная функция с перегруженным оператором << не имеет доступа к данным класса?
В заголовочном файле &quot;klass.h&quot; есть класс: class klass { int x; public: klass(); ~klass(); void show(); friend void...

Реализовать ввод исходных данных, расчет и вывод данных в виде методов класса. В Main только создание объектов и вызов методов
Всем привет) помогите пожалуйста с заданием &quot;Реализовать ввод исходных данных, расчет и вывод данных в виде методов класса. В Main только...

Treeview описание методов работы с данным элементом
Есть ли у кого-нибудь описание на русском языке по работе с treeview? или работающего примера на vba

Класс внутри класса с доступом к данным первого класса
Есть класс, он содержит в себе функции. Функций этих много и я решил, что было бы удобно их группировать, как-нибудь через структуры или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
50
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru