закрытые методы класса, зачем ?

  • Автор темы Ivan716
  • Дата начала
Статус
Закрыто для дальнейших ответов.
I

Ivan716

Гость
#1
Здравствуйте.

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

Rififi

Гость
#2
Ivan716

при создании нового класса, необходимо указать переменные и методы этого класса

ничего подобного. класс можно создать вообще без всего: class A {};

а вот для чего нужны закрытые методы ?

для реализации внутренней логики класса

например:

C++:
class Party
{
public:
void Invite(const std::string& guest)
{
CheckName(guest);
}

protected:
void CheckName(const std::string guest) const
{
if (guest != "Петя" || guest != "Маша")
throw std::runtime_error("А ты хто?");
}
};
я же их использовать не смогу или я что-то упустил ?

если они объявлены в protected-секции - можешь использовать в производных классах.
 
I

Ivan716

Гость
#3
если я правильно понял Ваш пример, то
Вы создали два метода, открытый и закрытый.
причем закрытый метод вызывается из открытого ?
 
R

RiCrO

Гость
#4
Он создал не закрытый, а так сказать "защищённый". Важно различать private и protected. Первый абсолютно "прикрывает" доступ к методам и данным класса где он объявлен таковым. Второй же - даёт доступ другим классам, которые являются производными от него.

Короче, всё зависит от того, хочешь ли ты скрывать данные или нет. Учти, что private лучше делать для данных, а не для методов.
 

a0z

Well-Known Member
15.03.2011
108
0
38
Minsk
#5
"Закрытые" они закрыты для всех, кроме самого класса. Так что ими можно пользоваться из открытых методов того-же класса.
 
Статус
Закрыто для дальнейших ответов.