powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Доступ к методу по :: ?
18 сообщений из 18, страница 1 из 1
Доступ к методу по :: ?
    #34959762
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как в ините сложного объекта А обратиться не к Х методу родителя (А::Х), а к У методу его составной части В, но не к тому, который возможно модифицирован в родителе, а к оригинальному в классе С, из которого произошел В ?
...
Рейтинг: 0 / 0
Доступ к методу по :: ?
    #34959771
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если добавлять признаки-свойства и через dodefault я знаю, а вот вызвать напрямую код не знаю как, может ли это ::?
...
Рейтинг: 0 / 0
Доступ к методу по :: ?
    #34959785
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AMorkovkaЕсли добавлять признаки-свойства и через dodefault я знаю, а вот вызвать напрямую код не знаю как, может ли это ::?
Можно так:
ClassParent::Method()
С уважением, Алексей.
...
Рейтинг: 0 / 0
Доступ к методу по :: ?
    #34959786
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хелп жестоко говорит, что весь А не есть потомок С, потому нельзя использовать ::. Вопрос снят.
...
Рейтинг: 0 / 0
Доступ к методу по :: ?
    #34959788
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AMorkovkaХелп жестоко говорит, что весь А не есть потомок С, потому нельзя использовать ::. Вопрос снят.
Где вы такое в HELP-е обнаружили ?!
Я вот такое нашел:
The :: operator is used to execute a parent class method from within a subclass method. When you create a subclass, the subclass methods are automatically inherited from the parent class. The :: operator makes it possible for you to execute the parent class method in the subclass method and then perform additional processing for the subclass method. The subclass definitions in the example demonstrate how the :: operator is used to execute the parent class method within a subclass method.
С уважением, Алексей.
...
Рейтинг: 0 / 0
Доступ к методу по :: ?
    #34959798
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А может вопрос и не снят? Не знаю, что делать с ClassParent в Вашей подсказке-как в ините сложного объекта А обратиться, как использовать подсказку? Хелп я имел ввиду тот, что давал разъяснение ошибки, когда она возникает при разных вариантах использования ::.
...
Рейтинг: 0 / 0
Доступ к методу по :: ?
    #34959805
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, все же нельзя.
...
Рейтинг: 0 / 0
Доступ к методу по :: ?
    #34959808
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все очень просто:
Вы можете обратиться из своего класса к любому методу любого класса, который является parent любой уровня для вашего класса. Напрмимер:
Есть класс Class1. У него есть прямой предок (родитель) ParentClass и еще два предка по иерархии выше: ParentClassLevel1 b ParentClassLevel2. Т.е. иерархия такова: ParentClassLevel2->ParentClassLevel1->ParentClass->Class1 (мой класс)
Тогда из метода своего класса я могу обратится у тому же методу прямого родителя (ParentClass) через DODEFAULT(). А обратится к любому методу класса - предка (но не родителя) ParentClassLevel1 можно так:
ParentClassLevel1::MyMetho() или к методу класса ParentClassLevel2::MyOtherMethod()

С уважением, Алексей
...
Рейтинг: 0 / 0
Доступ к методу по :: ?
    #34959811
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AMorkovkaНет, все же нельзя.
Может вы пытаетесь обратся не у методу предка?
А какая у вас версия VFP ?
С уважением, Алексей.
...
Рейтинг: 0 / 0
Доступ к методу по :: ?
    #34959814
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
9-ка
...
Рейтинг: 0 / 0
Доступ к методу по :: ?
    #34959820
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы говорите правильно, но у меня С входит в конейнер В, который есть родителем А. Потому из инита А я могу обратиться к методу Х В (В:Х), а вот к методу У С (С:У)-ошибки лезут, наверное, нет, потому что А не наследник С, а наследник целого В.
...
Рейтинг: 0 / 0
Доступ к методу по :: ?
    #34959825
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А... контейнер.. Т.е. вы обращаетсесь не у классу предку..
Тогда не выйдет. Все правильно.
С уважением, Алексей
...
Рейтинг: 0 / 0
Доступ к методу по :: ?
    #34960087
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объявите поле типа С в класса А с видимостью Protected и обращайтесь к методам С из В напрямую.
...
Рейтинг: 0 / 0
Доступ к методу по :: ?
    #34960088
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxerОбъявите поле типа С в класса А с видимостью Protected и обращайтесь к методам С из В напрямую.

поменяйте в ответе А <--> В. запутался :)
...
Рейтинг: 0 / 0
Доступ к методу по :: ?
    #34960108
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
примерно так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
o = CreateObject("Child")
o.printValue()

define class Delegate as Custom
	function getValue
		return "a value"
	endfunc  
enddefine 

define class Parent as Custom
	add object protected aDelegate as Delegate
enddefine 

define class Child as Parent
	procedure printValue
		? Parent::aDelegate.getValue()
	endproc 
enddefine 
...
Рейтинг: 0 / 0
Доступ к методу по :: ?
    #34960560
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хороший ход! Но я хотел обойти некоторую непоследовательность иерархий у себя, хотел чтобы можно было вывести только "a value" в некоторых случаях. Наверное, нельзя, не трогая код класса Parent:

o = CreateObject("Child")
o.printValue()

define class Delegate as Custom
function getValue
return "a value"
endfunc
enddefine

define class Parent as Custom
add object protected aDelegate as Delegate
function aDelegate.getValue
? DODEFAULT( )
return "b value"
endfunc
enddefine

define class Child as Parent
procedure printValue
? Parent::aDelegate.getValue()
endproc
enddefine
...
Рейтинг: 0 / 0
Доступ к методу по :: ?
    #34962677
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боюсь то, что Вы написали смысла не имеет. Хотя я могу ошибаться, не писал на VFP уже два года. Вы бы объяснили чего хотите в терминах ооп.
...
Рейтинг: 0 / 0
Доступ к методу по :: ?
    #34963126
AMorkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В объекте С есть метод Х. Объект В есть контейнер, он содержит объект С, и в нем же (в В) переопределен для объекта С метод Х. Есть объект А, который наследует В. Вот в этом А хотелось (вопреки канонам ООП) увидеть изначальный текст метода Х (тот, о котором говорится в первом предложении абзаца, непереопределенный). Теперь то я тоже соглашусь, что не только тот мой вопрос смысла не имеет, а даже вредный, уводящий от истины, но, поверьте, не из-за моей прихоти, а от тогдашнего непонимания и робкой надежды. Прошу извинить.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Доступ к методу по :: ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]