Вызов метода у экземпляра класса, вызов метода по ссылке на экземпляр класса, вызов статического метода класса. Вроде так, давно не писал на плюсах.
более понятно для не IT шников.
вот надо кого то послать нахуй, например Ивана.
тут есть объект - иван, действие, и куда - нахуй, собственно действие и реализует наш класс типа tNahui и экземпляр nahui
т.е. в простейшем случае будет так:
tNahui nahui(Ivan);
nahui.poslat(); // когда ты рядом перед Иваном то тогда с точкой
если иван не рядом с тобой а к нему Федя пойдёт то не скажешь же ты Феде иди нахуй, ты получишь по морде от Феди (ну и от компилятора ошибку), у тебя будет указание - послать Ивана нахуй, т.е. работаем через указатель
Fedya = new tNahui(Ivan);
Fedya->poslat(); // когда ты далеко от ивана и даёшь указание Феде
а теперь предположим что тебе хочется узнать куда kuda() тип класса посылает. Тебе не нужен контекст и никакой иван не нужен чтоб послать, да и посылать ты не обязан никого. Ты можешь класс спросить и этот вопрос будет статичной функцией т.к. гвоздями у класса прибито это направление посыла и создавать экземпляр не нужно т.к. нет контекста.
log_out(tNahui::kuda()); // Выведет в лог "нахуй"
вот надо кого то послать нахуй, например Ивана.
тут есть объект - иван, действие, и куда - нахуй, собственно действие и реализует наш класс типа tNahui и экземпляр nahui
т.е. в простейшем случае будет так:
tNahui nahui(Ivan);
nahui.poslat(); // когда ты рядом перед Иваном то тогда с точкой
если иван не рядом с тобой а к нему Федя пойдёт то не скажешь же ты Феде иди нахуй, ты получишь по морде от Феди (ну и от компилятора ошибку), у тебя будет указание - послать Ивана нахуй, т.е. работаем через указатель
Fedya = new tNahui(Ivan);
Fedya->poslat(); // когда ты далеко от ивана и даёшь указание Феде
а теперь предположим что тебе хочется узнать куда kuda() тип класса посылает. Тебе не нужен контекст и никакой иван не нужен чтоб послать, да и посылать ты не обязан никого. Ты можешь класс спросить и этот вопрос будет статичной функцией т.к. гвоздями у класса прибито это направление посыла и создавать экземпляр не нужно т.к. нет контекста.
log_out(tNahui::kuda()); // Выведет в лог "нахуй"
кибер-кэп?
кибер-присоединяюсь квашему кибер-почему
почему!
Вызов метода у экземпляра класса, вызов метода по ссылке на экземпляр класса, вызов статического метода класса. Вроде так, давно не писал на плюсах.
более понятно для не IT шников.
вот надо кого то послать нахуй, например Ивана.
тут есть объект - иван, действие, и куда - нахуй, собственно действие и реализует наш класс типа tNahui и экземпляр nahui
т.е. в простейшем случае будет так:
tNahui nahui(Ivan);
nahui.poslat(); // когда ты рядом перед Иваном то тогда с точкой
если иван не рядом с тобой а к нему Федя пойдёт то не скажешь же ты Феде иди нахуй, ты получишь по морде от Феди (ну и от компилятора ошибку), у тебя будет указание - послать Ивана нахуй, т.е. работаем через указатель
Fedya = new tNahui(Ivan);
Fedya->poslat(); // когда ты далеко от ивана и даёшь указание Феде
а теперь предположим что тебе хочется узнать куда kuda() тип класса посылает. Тебе не нужен контекст и никакой иван не нужен чтоб послать, да и посылать ты не обязан никого. Ты можешь класс спросить и этот вопрос будет статичной функцией т.к. гвоздями у класса прибито это направление посыла и создавать экземпляр не нужно т.к. нет контекста.
log_out(tNahui::kuda()); // Выведет в лог "нахуй"
вот надо кого то послать нахуй, например Ивана.
тут есть объект - иван, действие, и куда - нахуй, собственно действие и реализует наш класс типа tNahui и экземпляр nahui
т.е. в простейшем случае будет так:
tNahui nahui(Ivan);
nahui.poslat(); // когда ты рядом перед Иваном то тогда с точкой
если иван не рядом с тобой а к нему Федя пойдёт то не скажешь же ты Феде иди нахуй, ты получишь по морде от Феди (ну и от компилятора ошибку), у тебя будет указание - послать Ивана нахуй, т.е. работаем через указатель
Fedya = new tNahui(Ivan);
Fedya->poslat(); // когда ты далеко от ивана и даёшь указание Феде
а теперь предположим что тебе хочется узнать куда kuda() тип класса посылает. Тебе не нужен контекст и никакой иван не нужен чтоб послать, да и посылать ты не обязан никого. Ты можешь класс спросить и этот вопрос будет статичной функцией т.к. гвоздями у класса прибито это направление посыла и создавать экземпляр не нужно т.к. нет контекста.
log_out(tNahui::kuda()); // Выведет в лог "нахуй"
В последнем случае ты обращаешься через :: именно к типу класса а не к экземпляру и к статичной функции/методу этого типа класса.
https://stackoverflow.com/questions/4365982/how-do-i-call-a-static-method-of-another-class
https://stackoverflow.com/questions/4365982/how-do-i-call-a-static-method-of-another-class
вот этот коммент понятнее, чем верхний. но всё-равно спасибо! верхний не дался, как математика без таблицы умножения.
спросил у чатджпт:
Шутка играет на различиях в синтаксисе программирования. В разных языках программирования для обращения к методам или свойствам объектов используются разные символы.
foo.bar(): Это стандартный синтаксис вызова метода для многих объектно-ориентированных языков, таких как Python, Java или JavaScript.
foo->bar(): Это синтаксис, который часто встречается в языках программирования на основе C (например, в C++ для указателей на объекты).
foo::bar(): Этот синтаксис используется, например, в C++ для вызова статических методов или для обращения к методам в пространствах имен.
На изображении персонаж, видимо, пытается понять, почему были использованы именно такие обозначения, и когда он доходит до третьего варианта, ему, видимо, что-то осознаётся (что именно — неизвестно, это и есть часть шутки).
Шутка играет на различиях в синтаксисе программирования. В разных языках программирования для обращения к методам или свойствам объектов используются разные символы.
foo.bar(): Это стандартный синтаксис вызова метода для многих объектно-ориентированных языков, таких как Python, Java или JavaScript.
foo->bar(): Это синтаксис, который часто встречается в языках программирования на основе C (например, в C++ для указателей на объекты).
foo::bar(): Этот синтаксис используется, например, в C++ для вызова статических методов или для обращения к методам в пространствах имен.
На изображении персонаж, видимо, пытается понять, почему были использованы именно такие обозначения, и когда он доходит до третьего варианта, ему, видимо, что-то осознаётся (что именно — неизвестно, это и есть часть шутки).
Это какой язык?
C++ и немного лурка (вольный пересказ этого баяна как и картинки оттуда)
Кроме точки, выглядит как php
По уму класс у тебя должен быть, например "Кореша", а действия (методы) - послать, побороться, посмотреть...
пиши свой пример, разрешаю чо.
А у меня и так простыня получилась - уже слишком длинно для каммента.
А у меня и так простыня получилась - уже слишком длинно для каммента.
Ну проблема в том, что у тебя простыня не очень правильная. Класс описывает поведение какого-то типа объектов, а не действия, которые с ними выполняются. Т.е. неграмотно создавать класс "нахуй". Можно создать класс "Хуй", и объекты у тебя будут не "Иван" и "Федор", а "морожовый", "конский" и т.п. И, соответственно, действие (функция, метод) "моржовый.послать" будет иметь аргументом "кого послать" - Ивана, Федора и т.п. Такое может быть, если ты пишешь софт для администрирования хуев, и тебе нужно задавать именно их поведение. Пусть будет так. Определили класс "Хуй" с функцией "послать_на", которая в качестве аргумента берет имя посланного и что-то с ним делает. Объявили экземпляр класса "моржовый" с какими-то там свойствами (диаметр, длина и т.п.).
Точка - это просто обращение к члену (гы-гы) класса для соответствующего объекта. Т.е. я пишу "моржовый.послать_на(Вася)", и Вася насаживается на моржовый.
-> это раскрытие указателя. Т.е. если я не знаю, на какой конкретно хуй я могу кого-нибудь послать, но знаю его местонахождение - то использую это. Например, мне известно, что ближайший хуй находится в комнате 404, то я пишу "комната 404" -> послать (Вася). Тогда исполнитель моей программы посмотрит, что находится в комнате 404, увидит там моржовый хуй класса "нахуй", и выполнит по отношению к Васе определенное для этого класса действие, а именно насадит Васю на находящийся в этой комнате хуй.
В чем у тебя неправильность - ты описываешь так, как будто действие выполняется через Федю, а это не так.
Но, допустим, ты не знаешь, какие у тебя хуи есть в распоряжении и где они находятся, а Федя знает. Тогда у класса, к которому принадлежит объект Федя, должен быть метод "сообщи местонахождение хуя". Тогда да, ты мог бы применить этот метод к Феде, Федя тебе сообщил бы указатель на хуй, и ты его использовал бы для вызова соответствующего метода посыла.
Т.е.
(Федя.сунуть_в_жопу_паяльник("где ближайший хуй?")) -> послать(Вася).
Как-то так.
Точка - это просто обращение к члену (гы-гы) класса для соответствующего объекта. Т.е. я пишу "моржовый.послать_на(Вася)", и Вася насаживается на моржовый.
-> это раскрытие указателя. Т.е. если я не знаю, на какой конкретно хуй я могу кого-нибудь послать, но знаю его местонахождение - то использую это. Например, мне известно, что ближайший хуй находится в комнате 404, то я пишу "комната 404" -> послать (Вася). Тогда исполнитель моей программы посмотрит, что находится в комнате 404, увидит там моржовый хуй класса "нахуй", и выполнит по отношению к Васе определенное для этого класса действие, а именно насадит Васю на находящийся в этой комнате хуй.
В чем у тебя неправильность - ты описываешь так, как будто действие выполняется через Федю, а это не так.
Но, допустим, ты не знаешь, какие у тебя хуи есть в распоряжении и где они находятся, а Федя знает. Тогда у класса, к которому принадлежит объект Федя, должен быть метод "сообщи местонахождение хуя". Тогда да, ты мог бы применить этот метод к Феде, Федя тебе сообщил бы указатель на хуй, и ты его использовал бы для вызова соответствующего метода посыла.
Т.е.
(Федя.сунуть_в_жопу_паяльник("где ближайший хуй?")) -> послать(Вася).
Как-то так.
> Т.е. если я не знаю, на какой конкретно хуй я могу кого-нибудь послать, но знаю его местонахождение - то использую это. Например, мне известно, что ближайший хуй находится в комнате 404, то я пишу "комната 404" -> послать (Вася).
Только вот нахуя всё это надо? Если я в джаве знаю, что хуй находится в комнате 404, то я пишу комната404.getХуй().послать(Вася);
На кой хуй здесь какие-то ёбаные указатели, ёбаные стрелочки? Получили объект, вызвали у него метод, всё.
Только вот нахуя всё это надо? Если я в джаве знаю, что хуй находится в комнате 404, то я пишу комната404.getХуй().послать(Вася);
На кой хуй здесь какие-то ёбаные указатели, ёбаные стрелочки? Получили объект, вызвали у него метод, всё.
>побороться
Exception: побороться() before побрить() not allowed
Exception: побороться() before побрить() not allowed
так с Федором нельзя поступать, нужно использовать паттерн "интерфейс", и внутри уже раскидывать - непосредственно нахуй послать или с приветом через Федора
По мне так смешали разные языки. На первой пикче js/c++/c#. На второй и третьей кажется php, вызов метода экземпляра класса и вызов статической функции.
На всех трёх - c++, причем все вызовы могут идти в пределах одного блока
Два имени, которые часто используют в примерах в коде
Как в шутках про "русского, американца и француза"
Как в шутках про "русского, американца и француза"
Если мне не изменяют универовские знания, то:
-> - вызов метода bar указателя на объект foo
. - вызов метода bar объекта foo
:: - что-то там с пространством имен, вызов метода bar из пространства foo?
-> - вызов метода bar указателя на объект foo
. - вызов метода bar объекта foo
:: - что-то там с пространством имен, вызов метода bar из пространства foo?
В случае с :: - либо из пространства foo, либо из класса foo, без подсматривания в исходник сказать нельзя.
какой сезон:серия?
10 сезон: 9 серия.
Самое начало практически (Минута 3~4-ая). И, если угодно, конкретно этот момент отдельно:
Самое начало практически (Минута 3~4-ая). И, если угодно, конкретно этот момент отдельно:
сезон::серия
Чтобы написать коммент, необходимо залогиниться
Отличный комментарий!