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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.94
nikkka
Мат в 32 хода
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
#1

функции класса раздела private реализуються так же как и раздела public? в смысле виртуальных функций, дружественных функций, и т.д. - C++

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

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

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов C++
таблица виртуальных функций C++
C++ Таблица виртуальных функций
C++ перегрузка виртуальных функций
Использование виртуальных функций C++
C++ Наследования класса как public, private и protected
C++ Добавить в программу использование дружественных функций
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
14.07.2010, 16:43     функции класса раздела private реализуються так же как и раздела public? в смысле виртуальных функций, дружественных функций, и т.д. #2
nikkka, Функции вроде как не принято в привате писать. Поправьте, если не прав.
nikkka
Мат в 32 хода
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
14.07.2010, 16:49  [ТС]     функции класса раздела private реализуються так же как и раздела public? в смысле виртуальных функций, дружественных функций, и т.д. #3
Цитата Сообщение от Lavroff Посмотреть сообщение
nikkka, Функции вроде как не принято в привате писать. Поправьте, если не прав.
не принято, но ведь бывают моменты, когда удобнее в private засунуть, по каким либо причинам. у меня в книжке пара примеров были. но о дружественных и виртуальных функциях ни слова : S
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
14.07.2010, 16:53     функции класса раздела private реализуються так же как и раздела public? в смысле виртуальных функций, дружественных функций, и т.д. #4
Цитата Сообщение от Lavroff Посмотреть сообщение
Функции вроде как не принято в привате писать. Поправьте, если не прав.
если к методу не должны обращатся из вне класса, то он заносится в private.
CyBOSSeR
Эксперт C++
2299 / 1669 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
14.07.2010, 16:55     функции класса раздела private реализуються так же как и раздела public? в смысле виртуальных функций, дружественных функций, и т.д. #5
Цитата Сообщение от Lavroff Посмотреть сообщение
Функции вроде как не принято в привате писать.
Почему же, если наследование не предполагается и метод не должен быть доступен клиентам или необходимо запретить доступ производным классам к методу, то его нужно сделать закрытым.
Цитата Сообщение от nikkka Посмотреть сообщение
виртуальных функций
Каким образом ты сможешь переопределить закрытый метод в производном классе?
Цитата Сообщение от nikkka Посмотреть сообщение
дружественных функций
Здесь поподробнее.
nikkka
Мат в 32 хода
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
14.07.2010, 16:58  [ТС]     функции класса раздела private реализуються так же как и раздела public? в смысле виртуальных функций, дружественных функций, и т.д. #6
Цитата Сообщение от PointsEqual Посмотреть сообщение
если к методу не должны обращатся из вне класса, то он заносится в private.
это само собой. но если функция члена раздела public пользуется функция члена раздела privet?
я это имел ввиду.
CyBOSSeR
Эксперт C++
2299 / 1669 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
14.07.2010, 17:00     функции класса раздела private реализуються так же как и раздела public? в смысле виртуальных функций, дружественных функций, и т.д. #7
Цитата Сообщение от nikkka Посмотреть сообщение
это само собой. но если функция члена раздела public пользуется функция члена раздела privet?
я это имел ввиду.
Какая разница? Закрытые функции полностью доступны классу в котором они реализованы.
nikkka
Мат в 32 хода
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
14.07.2010, 17:00  [ТС]     функции класса раздела private реализуються так же как и раздела public? в смысле виртуальных функций, дружественных функций, и т.д. #8
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Каким образом ты сможешь переопределить закрытый метод в производном классе?
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Здесь поподробнее.
а, ну да, извените, ступил
раздел private "трогать" нельзя, да?
CyBOSSeR
Эксперт C++
2299 / 1669 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
14.07.2010, 17:03     функции класса раздела private реализуються так же как и раздела public? в смысле виртуальных функций, дружественных функций, и т.д. #9
Цитата Сообщение от nikkka Посмотреть сообщение
раздел private "трогать" нельзя, да?
Именно, к закрытой секции имеет доступ только сам класс и дружественные функции и классы для данного класса.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.07.2010, 09:00     функции класса раздела private реализуються так же как и раздела public? в смысле виртуальных функций, дружественных функций, и т.д.
Еще ссылки по теме:

C++ Private и public члены класса
C++ Механизм виртуальных функций
Использование виртуальных функций C++
C++ Можно ли делать шаблоны дружественных функций?
C++ Вызов виртуальных функций

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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт CАвтор FAQ
17404 / 5642 / 353
Регистрация: 30.03.2009
Сообщений: 15,434
Записей в блоге: 26
15.07.2010, 09:00     функции класса раздела private реализуються так же как и раздела public? в смысле виртуальных функций, дружественных функций, и т.д. #10
Сообщение было отмечено автором темы, экспертом или модератором как ответ
На всякий случай следует упомянуть, что все эти права доступа реализовны только на уровне языка. В машинном коде этих прав доступа нет. Т.е. можно взять адрес на public член класса, через адресную арифметику получить адрес на private-член и модифицировать его. Таким образом, если видишь в программе, что методы твоего класса значение private члена не меняют, но он изменился, то это вовсе не означает, что "Си++ ацтой" или "кривой компилятор". Это в первую очередь означает наличие косяка в собственной программе (выходы за границу массива или некорректная работа с поинтерной арифметикой)

Люди так или иначе не раз пытались строить аппаратуру, которая на уровне процессора бы поддерживала ООП и эти права доступа были бы реализованы аппаратно (тогда уже не было бы никакой возможности залезть в private часть класса). Но реальный мир устроен так, что большинство написанного софта так или иначе противоречит 100%-ному защищённому программированию. К тому же многие вещи из ООП слишком проблематично реализовывать на аппаратном уровне, а многие попросту не дают нормально оптимизировать программы. Потому рано или поздно такие разработки оказываются на помойке и не находят широкого применения
Yandex
Объявления
15.07.2010, 09:00     функции класса раздела private реализуються так же как и раздела public? в смысле виртуальных функций, дружественных функций, и т.д.
Ответ Создать тему
Опции темы

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