Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
MetMark
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 212
1

Стандартизация

06.07.2019, 20:34. Просмотров 1944. Ответов 8
Метки нет (Все метки)

Здравствуйте. Хотел я не много услышать о то, куда и что можно, правильно записывать у классов. К примеру на сколько мне известно, переменные (поля) нужно записывать в "private:", а виртуальные методы (Кстати, не знаю зачем писать virtual...) в "protected:". Еще вопрос, можно ли методы класса писать в "public:"?

Добавлено через 23 минуты
Уже нашел ответы на свои вопросы, прошу прощения...
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2019, 20:34
Ответы с готовыми решениями:

Стандартизация процесса разработки ПО
Помогите обосновать актуальность задачи стандартизации процесса кодирования( т.е формирования...

Стандартизация коэффициентов логистической регрессии
Добрый вечер! Я нашел коэффициенты логистической регрессии с помощью метода максимального...

Стандартизация ФИО (исправление ошибок)
Привет всем. Очень нужно помощь в решении следующей задачи: Есть большой массив (5 млн записей)...

Стандартизация многомерной нормальной случайной величины
Здравствуйте! Меня интересует, как стандартизировать многомерную нормальную случайную величину. ...

Должны ли в современной России существовать обязательные сертификация и стандартизация?
Должны ли в современной России существовать обязательные сертификация и стандартизация, ведь за...

8
Байт
07.07.2019, 09:13
  #2

Не по теме:

MetMark, на будущее. В данном случае немного, насколько - пишутся вместе.:)

0
MetMark
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 212
07.07.2019, 09:32  [ТС] 3
Байт, учту на будущее, спасибо
0
Анна по жизни
278 / 167 / 62
Регистрация: 13.03.2019
Сообщений: 406
07.07.2019, 11:40 4
Цитата Сообщение от MetMark Посмотреть сообщение
а виртуальные методы (Кстати, не знаю зачем писать virtual...) в "protected:". Еще вопрос, можно ли методы класса писать в "public:"?
virtual пишется у тех методов, которые можно будет перегрузить в классе-наследнике. Самый яркий пример: метод QWidget:aintEvent(). Этот метод виртуальный у QWidget, потому что QWidget не знает, что понадобится программисту нарисовать у своего виджета, но система событий благополучно вызывает этот метод у любого наследника от QWidget.

виртуальные методы могут находиться в любой секции объявления класса.

private: располагаются переменные класса (закрытость переменных от внешнего доступа - это особенность класса) и методы, которые может вызывать только экземпляр этого класса и никто другой.

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

public: содержит всё, что позволено вызывать всем.
0
07.07.2019, 11:40
Байт
Эксперт C
22288 / 14041 / 2965
Регистрация: 24.12.2010
Сообщений: 29,931
07.07.2019, 11:57 5
Цитата Сообщение от Анна по жизни Посмотреть сообщение
protected: содержатся методы, которые могут быть вызваны как экземпляром самого класса, так и так и экземплярами класса-наследника.
Имхо, в чистом виде их вызвать из класса наследника их скорее всего не удастся. Но они в наследнике могут быть переопределены. Если я не ошибаюсь...
Цитата Сообщение от Анна по жизни Посмотреть сообщение
::paintEvent().
Чтобы он не дразнился, нужно включить флажок "отключить смайлы в тексте" (под сообщением)

Добавлено через 39 секунд
QWidget::paintEvent

Добавлено через 1 минуту
Отключился и в основном сообщении...
0
Анна по жизни
278 / 167 / 62
Регистрация: 13.03.2019
Сообщений: 406
07.07.2019, 13:48 6
Цитата Сообщение от Байт Посмотреть сообщение
Имхо, в чистом виде их вызвать из класса наследника их скорее всего не удастся. Но они в наследнике могут быть переопределены. Если я не ошибаюсь...
Я часто перегружаю QAbstractItemModel и в наследниках спокойно вызываю createIndex(), которая объявлена как protected в родительском классе.

Добавлено через 1 минуту
Цитата Сообщение от Байт Посмотреть сообщение
Чтобы он не дразнился, нужно включить флажок "отключить смайлы в тексте" (под сообщением)
Спасибо. :P
1
Байт
Эксперт C
22288 / 14041 / 2965
Регистрация: 24.12.2010
Сообщений: 29,931
07.07.2019, 16:24 7
Цитата Сообщение от Анна по жизни Посмотреть сообщение
Я часто
Да, возможно я чего-то не так понял. Спасибо.

Добавлено через 19 минут
Анна по жизни, да, вы совершенно правы. Лукавый попутал...
0
Анна по жизни
08.07.2019, 11:37
  #8

Не по теме:

Цитата Сообщение от Байт Посмотреть сообщение
Лукавый попутал...
Спасибо Лукавому. Я полезна в инет себя перепроверять и наткнулась на кое-что интересное в блоге Алёны С++. Давно собиралась выяснить, посему класс-наследник объявляется как class MyClass: public ParentClass . Теперь выяснила. Мне в работе это не понадобится, но интересно же.

0
Avazart
Эксперт С++
8010 / 5829 / 575
Регистрация: 10.12.2010
Сообщений: 26,857
Записей в блоге: 19
13.07.2019, 14:15 9
Цитата Сообщение от MetMark Посмотреть сообщение
К примеру на сколько мне известно, переменные (поля) нужно записывать в "private:", а виртуальные методы (Кстати, не знаю зачем писать virtual...) в "protected:".
Переменные да...
Виртуальные методы в protected - когда подразумевается их скрытие и переопределение.
0
13.07.2019, 14:15
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2019, 14:15

Получить из слова приватизация слово стандартизация используя процедуры и функции при работе со строками
Получить из слова приватизация слово стандартизация используя процедуры и функции при работе со...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.