cNoNim
>=A=L=X=
>чтото ты не то советуешь...
>ты собрался применять тайп кастинг к тому, что получил из пакета?
ммм... по моему ты его плохо понял. он не к запросу или чему-то вытащенному из запроса говорил что будет делать проверку метода, а исходя из запроса чего-то-там вызывать.
Zefick
я к тому, что имхо автору механизмы рефлексии для решения его задачи не нужны, а вполне можно обойтись наследованием и интерфейсами.
=A=L=X=
я его как раз таки понял :)
хотя может и не понял...
но тайпкастинг все равно не поможет
у него есть объект реализующий все действия
и запрос.. допустим с именем функции
и он хочет каким нить магическим методом
без условных переходов понять есть такая функция или нет
Автору следует на PHP и остановиться если ему без этого жить сложно.
Вот придумал как можно реализовать данную проблему с помощью указателей на функцию.
#include <iostream>
#include
KpeHDeJIb
Пример из рнр - существует контроллер, например options, выполняющий несколько запросов посредством http заголовка, пускай будет edit и clean. Когда пользователь запрашивает /options/edit/ front controller пытается выполнить метод edit класса options. А если пользователь запросит другую страницу? В таком случае возникает необходимость проверить наявность метода в рпеделах данного класса.
$tatic
Каким образом то о чем я говорю противоречит концепции ооп?
cNoNim
>пруф? про typeof?
Извиняюсь, ошибся. Есть ключевое слово typeid.
majesty
>KpeHDeJIb
>Пример из рнр - существует контроллер, например options, выполняющий несколько
>запросов посредством http заголовка, пускай будет edit и clean. Когда
>пользователь запрашивает /options/edit/ front controller пытается выполнить
>метод edit класса options. А если пользователь запросит другую страницу? В
>таком случае возникает необходимость проверить наявность метода в рпеделах
>данного класса.
Ну я же и объясняю!
if ( dynamic_cast< COptions >( new_options_tab ) )
{
// здесь мы поняли что действительно имеем дело с опциями и все его методы нам доступны
... // пошла КОЛБАСА!!! =)
};
Да, ппц, во-первых концепция ООП тут абсолютно и совершенно не при чем. Во-вторых я ничерта не понял что ты за пример привел.
Если ты строишь поведение страницы в зависимости от request string то тебе и PHP не поможет.
majesty
>Каким образом то о чем я говорю противоречит концепции ооп?
Насколько мне известно, никаким. Однако это противоречит концепции С++. Нету в языке reflection.
Касаемо примера с пхп - это хреновое решение, так как позволяет вызывать произвольные методы у класса с помощью http-запроса. То, что метод существует, еще не означает что его можно вызывать всем.
Zefick
лучше читай мсдн внимательней
tipeid это C++/CLI
Вы видели мой пример?
Чем он вам не нравится?
Zefick
typeid относится к RTTI но все равно не решает поставленную ОПом задачу, он не ищет класс и не позволяет
проверить наличие метода этого класса. Легко заменяется вводом метода getName() в базовый класс и его
последующим переопределением, если RTTI за собой таскать неохота.
ЗЫ. Я до сих чувствую что мы костылями балуемся...
AndreSt
Вводить руками плохой вариант, в таком случае проще создать в классе переменную которая будет хранить список доступных методов.
Конишуа
Касаемо примера рнр существует много вариантов ограничения доступа, например, как реализовано в code ingniter и kohanaphp - недоступные методы отмечаются _ в начале названия.
Тема в архиве.