• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

Ivan716

Здравствуйте.

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

Rififi

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

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

RiCrO

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

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

a0z

"Закрытые" они закрыты для всех, кроме самого класса. Так что ими можно пользоваться из открытых методов того-же класса.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!