Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
nikkka
Мат в 32 хода
236 / 171 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
1

Функции класса в разделе private реализуются так же как и в разделе public?

14.07.2010, 16:24. Просмотров 2771. Ответов 9
Метки нет (Все метки)

функции класса раздела private реализуються так же как и раздела public? в смысле виртуальных функций, дружественных функций, и т.д.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2010, 16:24
Ответы с готовыми решениями:

Наследования класса как public, private и protected
Ну допустим у нас есть класс который наследуется как public: class Cylinder : public Point { //...

Private и public члены класса
Привет! Есть такой класс: class CDateTime{ private: qint16 year_; qint8 month_,...

Новый параметр в разделе Private bool bPaused
Всем привет. Почти доделал по инструкции синтезатор, но вот в конце, где идет это я никак не...

В каком разделе класса объявить функцию?
В каком месте кода? Я скажем решил в процедуру Button1Click, что бы функция пренадлежала ей и...

Изменить модификаторы доступа public к полям класса на private
Был тут вот такой код: namespace ConsoleApplication3 { class Room { public...

9
ForEveR
В астрале
Эксперт С++
8007 / 4764 / 654
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
14.07.2010, 16:43 2
nikkka, Функции вроде как не принято в привате писать. Поправьте, если не прав.
0
nikkka
Мат в 32 хода
236 / 171 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
14.07.2010, 16:49  [ТС] 3
Цитата Сообщение от Lavroff Посмотреть сообщение
nikkka, Функции вроде как не принято в привате писать. Поправьте, если не прав.
не принято, но ведь бывают моменты, когда удобнее в private засунуть, по каким либо причинам. у меня в книжке пара примеров были. но о дружественных и виртуальных функциях ни слова : S
0
PointsEqual
ниначмуроФ
844 / 528 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
14.07.2010, 16:53 4
Цитата Сообщение от Lavroff Посмотреть сообщение
Функции вроде как не принято в привате писать. Поправьте, если не прав.
если к методу не должны обращатся из вне класса, то он заносится в private.
0
14.07.2010, 16:53
CyBOSSeR
Эксперт С++
2316 / 1689 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
14.07.2010, 16:55 5
Цитата Сообщение от Lavroff Посмотреть сообщение
Функции вроде как не принято в привате писать.
Почему же, если наследование не предполагается и метод не должен быть доступен клиентам или необходимо запретить доступ производным классам к методу, то его нужно сделать закрытым.
Цитата Сообщение от nikkka Посмотреть сообщение
виртуальных функций
Каким образом ты сможешь переопределить закрытый метод в производном классе?
Цитата Сообщение от nikkka Посмотреть сообщение
дружественных функций
Здесь поподробнее.
0
nikkka
Мат в 32 хода
236 / 171 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
14.07.2010, 16:58  [ТС] 6
Цитата Сообщение от PointsEqual Посмотреть сообщение
если к методу не должны обращатся из вне класса, то он заносится в private.
это само собой. но если функция члена раздела public пользуется функция члена раздела privet?
я это имел ввиду.
0
CyBOSSeR
Эксперт С++
2316 / 1689 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
14.07.2010, 17:00 7
Цитата Сообщение от nikkka Посмотреть сообщение
это само собой. но если функция члена раздела public пользуется функция члена раздела privet?
я это имел ввиду.
Какая разница? Закрытые функции полностью доступны классу в котором они реализованы.
1
nikkka
Мат в 32 хода
236 / 171 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
14.07.2010, 17:00  [ТС] 8
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Каким образом ты сможешь переопределить закрытый метод в производном классе?
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Здесь поподробнее.
а, ну да, извените, ступил
раздел private "трогать" нельзя, да?
0
CyBOSSeR
Эксперт С++
2316 / 1689 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
14.07.2010, 17:03 9
Цитата Сообщение от nikkka Посмотреть сообщение
раздел private "трогать" нельзя, да?
Именно, к закрытой секции имеет доступ только сам класс и дружественные функции и классы для данного класса.
1
Evg
Эксперт CАвтор FAQ
20207 / 7768 / 595
Регистрация: 30.03.2009
Сообщений: 21,715
Записей в блоге: 30
15.07.2010, 09:00 10
Лучший ответ Сообщение было отмечено как решение

Решение

На всякий случай следует упомянуть, что все эти права доступа реализовны только на уровне языка. В машинном коде этих прав доступа нет. Т.е. можно взять адрес на public член класса, через адресную арифметику получить адрес на private-член и модифицировать его. Таким образом, если видишь в программе, что методы твоего класса значение private члена не меняют, но он изменился, то это вовсе не означает, что "Си++ ацтой" или "кривой компилятор". Это в первую очередь означает наличие косяка в собственной программе (выходы за границу массива или некорректная работа с поинтерной арифметикой)

Люди так или иначе не раз пытались строить аппаратуру, которая на уровне процессора бы поддерживала ООП и эти права доступа были бы реализованы аппаратно (тогда уже не было бы никакой возможности залезть в private часть класса). Но реальный мир устроен так, что большинство написанного софта так или иначе противоречит 100%-ному защищённому программированию. К тому же многие вещи из ООП слишком проблематично реализовывать на аппаратном уровне, а многие попросту не дают нормально оптимизировать программы. Потому рано или поздно такие разработки оказываются на помойке и не находят широкого применения
4
15.07.2010, 09:00
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.07.2010, 09:00

Как сделать так, чтоб в разделе меню "мои сообщения" отображалось кол-во новых сообщений?
Всем приветик ;) Я довольно таки новый человек в php, сейчас пишу общалку для меня и моих...

Написать модуль, содержащий описание следующего класса (использовать private и public)
Объект - дата этого года. Свойства - (Rw) день и месяц; - (Rw) день недели (при изменении...

Построить таблицу функции на отрезке, вводя соответствующую функцию в разделе Function
Построить таблицу функции «y» на отрезке с шагом «h», вводя соответствующую функцию в разделе...


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

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

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