Перейти к содержимому
Xacan - вернись на форум! Я все прощу!
Я халвы тебе без транс-жиров ссыщу!

Архивировано

Эта тема находится в архиве и закрыта для публикации сообщений.

Гость Красавчик Брю

может кто-нибудь объяснить

Recommended Posts

Да что вы все про бабло, а про бабло.

В мск банально проекты интереснее в массе своей...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость Красавчик Брю
Да что вы все про бабло, а про бабло.

В мск банально проекты интереснее в массе своей...

согласен про интересные проекты

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Почитал, потратил время, но кажись не зря.

Тих, а мог бы ты сказать в чем разница между ними?

не на функцию, а на функцию-член!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Завершилось на том, откуда начинали - остались лузеры

А ты бутер видимо себя уже за крутого перца мнишь,

в далекие полеты летаешь или спишь там в москау и подушку

слезьми горькими мочишь, а сам тут выпыриваешь грудь колесом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость booter
А ты бутер видимо себя уже за крутого перца мнишь,

в далекие полеты летаешь или спишь там в москау и подушку

слезьми горькими мочишь, а сам тут выпыриваешь грудь колесом?

Ага.

P.S. Илья, ты? Не признал в гриме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость Красавчик Брю

гы

бутер тока что под амера лег

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
P.S. Илья, ты? Не признал в гриме.

Нет, это не он. Это Лёха Беляев. Он такой, суровый гот.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость tich
Почитал, потратил время, но кажись не зря.

Тих, а мог бы ты сказать в чем разница между ними?

Соответствие присваеваемой функции в трех моментах

1. типы и количества формальных параметров

2. тип возвращаемого значения

3. тип класса, членом которого является функция.

Указатель на обычную функцию - адрес. Указатель на функцию-член привязан к указателю на объект(this).

Указатель на функцию:

int (*pmy_func)(int);

на функцию-член:

int (MyClass::*pmy_func_class)(int);

(Используем Typedef во избежание геморроя)

А на что собсна это должно указывать? А вот на это:

int my_func(int l_i);

pmy_func=my_func;

pmy_func_class=&MyClass::my_func_class;

Чтобы это вызвать, нам нужен объект типа MyClass и оператор(->*)(не забываем скобочки!)

MyClass *example_my_class = new MyClass;

(example_my_class->*pmy_func_class)(3);

Или

MyClass example_my_class;

(example_my_class.*pmy_func_class)(3);

Для статических методов используем обычные указатели на функцию по понятным(надеюсь)

причинам.

Ну и что тут такого, спросите вы. А наследование? То-то. Как бум приводить указатели на функции-члены класса к

к функциям-членам базового класса и или класса-наследника?

Ой, а для чего это все? Напугать студента, конечно! (адаптеры функций в STL, например)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость booter
Нет, это не он. Это Лёха Беляев. Он такой, суровый гот.

Кость, я знаю. :) Просто стилистика - один в один.

Добавлено в [mergetime]1250227563[/mergetime]

Соответствие присваеваемой функции в трех моментах

У меня тоже такие приемчики есть, когда показываешь что-то узко-частное, а потом, когда кандидат поплыл, говоришь "ну что же вы, батенька, ничего не знаете и хотите 20 тысяч - вам же еще учится и учится. Давайте 15 - и по рукам, разрешим с нами, такими умными работать". Только вот трудно до этих приемчиков добраться, когда пациент пишет "pablic" в примере кода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость booter
Ой, а для чего это все? Напугать студента, конечно! (адаптеры функций в STL, например)

А еще - указатели на виртуальную и чисто виртуальную функцию. Для полноты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость tich
У меня тоже такие приемчики есть, когда показываешь что-то узко-частное

Ну во-первых, это не "приемчики" и вообще-то не особо узко-частное. Даже если ты запутался в ::*,->*,.* забыл скобочки, ничего страшного. Это делается не для снижения з.п., а чтобы посмотреть как человек рассуждает например обо всем об этом в плане наследования. Наследование-то он должен понимать! Но до этого фашизма обычно и не доходит.

А еще - указатели на виртуальную и чисто виртуальную функцию. Для полноты

Ну собсна синтаксис-то (::*,->*,.*) никуда не денется. А вот чего вызовется в итоге, это да, интересно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость booter
Это делается не для снижения з.п.

А зря.

Ну собсна синтаксис-то (::*,->*,.*) никуда не денется. А вот чего вызовется в итоге, это да, интересно.

С академической точки зрения - да. С практической - нафик не упало. Потому что большие усложнения, запутаннее код, сложнее поддержка. Только и остается что студентов на собеседованиях насиловать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость tich
С практической - нафик не упало

А делегаты?!

А зря.

Ну обычно нужен человек определенной квалификации на определенные деньги. Неплохие, по местным меркам(не 15 и не 20). Зачем я буду чморить кандидата с целью срубить с его з.п. пару копеек? Мне понять надо, что он за человек.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Ну и что тут такого, спросите вы. А наследование? То-то. Как бум приводить указатели на функции-члены класса к

к функциям-членам базового класса и или класса-наследника?

[покачивая головой] всё-таки Страуструп есть диавол. Об эти ваши кресты голову сломать можно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость tich
[покачивая головой] всё-таки Страуструп есть диавол. Об эти ваши кресты голову сломать можно.

Ну ты-то не сломаешь, ты умничка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость booter
А делегаты?!

А делегаты на Си++ делаются при помощи connect и emit. :lol: Все остальное - от лукавых.

Зачем я буду чморить кандидата с целью срубить с его з.п. пару копеек?

Э-э-э... Ты свои деньги отдаешь или где?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Ну ты-то не сломаешь, ты умничка.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость tich
Высокоуровневые концепции, утрамбованные в низкоуровневый язык плюс попытка их компактно выразить при помощи месива из неоднозначных операторов - это страшно

Назвается "нельзя, но если очень хочется, то - можно" :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Н-дя Тих.

То что топик ты знаешь это я по первому

восклицанию заметил, а вот то что ты его

несовсем понимаешь, это ты сам только что

доказал.

Вот так крутые москау перци нахероверчут

там в маскдрюндии, а мы потом убогии в Туле

переписываем их срач

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость booter
Вот так крутые москау перци нахероверчут там в маскдрюндии, а мы потом убогии в Туле переписываем их срач

И много понапереписывали? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Чтобы это вызвать, нам нужен объект типа MyClass и оператор(->*)(не забываем скобочки!)

MyClass *example_my_class = new MyClass;

(example_my_class->*pmy_func_class)(3);

Кстате, а можно воспользоваться тем фактом, что невиртуальный метод есть обычная функция, для которой первый аргумент передаётся магическим образом, и написать что-то типа такого:

(*pmy_func_class)(example_my_class, 3)

?

Или, проще,

MyClass::my_func_class(example_my_class, 3)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость tich

по сути должно получиться вот что

mov ecx, [this]

call [my_func_class]

Вопрос в чем, запихнет ли компилятор example_my_class в eсx в результате

MyClass::my_func_class(example_my_class, 3)?

Если в этом, то нет - не пройдет типизацию по числу и типам параметров my_func_class()

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
по сути должно получиться вот что

mov ecx, [this]

call [my_func_class]

Вопрос в чем, запихнет ли компилятор example_my_class в eсx в результате

MyClass::my_func_class(example_my_class, 3)?

:)

Мне кажется, это зависит от того, как написать компилятор.

Тем более, у нас ведь необязательно x86-машина.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

×
×
  • Создать...