Как вызвать функцию из класса c
как мне из одного класса вызвать функцию с параметрами, объявленную в другом классе?
class CKlassA : public VS_FIXEDFILEINFO < protected: struct LANGANDCODEPAGE < WORD wLanguage; // language WORD wCodePage; // code page >; public: . . bool FunctionA(OUT LPTSTR lpszParam, IN DWORD dwSize) < return GetValue(_T("ABC"), lpszParam, dwSize); > protected: BYTE* m_pInfo; LANGANDCODEPAGE m_Translate; >;
как мне из класса CKlassB вызвать FunctionA с параметрами
Исправлена подсветка синтаксиса. — ПК.
Re: Вызов функций из другого класса
От: | Vamp |
Дата: | 10.09.03 07:52 |
Оценка: |
А>как мне из класса CKlassB вызвать FunctionA с параметрами
Включить объявление этого класса и создаеть его объект.
Да здравствует мыло душистое и веревка пушистая.
Re[2]: Вызов функций из другого класса
От: | Аноним |
Дата: | 10.09.03 07:54 |
Оценка: |
Здравствуйте, Vamp, Вы писали:
А>>как мне из класса CKlassB вызвать FunctionA с параметрами
V>Включить объявление этого класса и создаеть его объект.
а как это сделать?
(напишите пример для моего случая плиз)
Re[3]: Вызов функций из другого класса
От: | LaptevVV |
Дата: | 10.09.03 08:04 |
Оценка: |
Здравствуйте, Аноним, Вы писали:
А>>>как мне из класса CKlassB вызвать FunctionA с параметрами
V>>Включить объявление этого класса и создаеть его объект.
А>а как это сделать?
А>(напишите пример для моего случая плиз)
В классе В
CKlass A;
A.FunctionA(параметры);
Хочешь быть счастливым — будь им!
Без булдырабыз.
Re[3]: Вызов функций из другого класса
От: | GarryIV | |
Дата: | 10.09.03 08:05 | |
Оценка: | +1 -1 |
Здравствуйте, Аноним! Вы писали:
А>>> как мне из класса CKlassB вызвать FunctionA с параметрами
V>> Включить объявление этого класса и создаеть его объект.
> а как это сделать?
> (напишите пример для моего случая плиз)
ИМХО Вам стоит сначала прочитать про ООП для начала, по крайней мере то что касается инкапсуляции. А то желание из одного класса звать функцию-член другого класса вызывает недоумение.
Posted via RSDN NNTP Server 1.7 beta
WBR, Igor Evgrafov
Re[4]: Вызов функций из другого класса
От: | Аноним |
Дата: | 10.09.03 08:09 |
Оценка: |
Здравствуйте, GarryIV, Вы писали:
GIV>Здравствуйте, Аноним! Вы писали:
А>>>> как мне из класса CKlassB вызвать FunctionA с параметрами
V>>> Включить объявление этого класса и создаеть его объект.
>> а как это сделать?
>> (напишите пример для моего случая плиз)
GIV>ИМХО Вам стоит сначала прочитать про ООП для начала, по крайней мере то что касается инкапсуляции. А то желание из одного класса звать функцию-член другого класса вызывает недоумение.
возможно .
но я и сам давно разобрался!
Как вызвать функцию из класса c
Пользователь
Регистрация: 28.03.2011
Сообщений: 32
Как вызвать функцию из класса ?
Есть класс, а в нем функция
class test < public: int sh(); >; sh()
А как теперь его вызвать ?
test::sh();
не прокатывает, вылазит ошибка
Use . or -> to call ‘test::sh() |
, однако при попытке test.sh(); или test->sh(); тоже не компилируется
Silly Student |
Посмотреть профиль |
Найти ещё сообщения от Silly Student |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
вот так попробуй
int test::ch() < //тут тело метода >
Пользователь
Регистрация: 25.05.2011
Сообщений: 89
class test < public: int sh(); >; int test::sh() < ShowMessage("sh"); return 0; >void main()
Последний раз редактировалось _Alerter_; 13.10.2011 в 20:09 .
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как вызвать функцию из функции ? | PheonixS | JavaScript, Ajax | 3 | 16.12.2010 05:35 |
Как вызвать функцию из юнита? | Des | Общие вопросы Delphi | 5 | 06.11.2010 12:47 |
Вызвать функцию с известной сигнатурой для неизвестного класса. Интерфейс | Ferrum26 | Общие вопросы Delphi | 4 | 22.07.2010 14:26 |
Как вызвать метод из другого класса в C# | KobolD | Помощь студентам | 6 | 25.06.2010 14:12 |
Как вызвать функцию? | blackstersl | Общие вопросы Delphi | 10 | 07.06.2009 19:22 |
Как вызвать функцию класса из переменной?
Подскажите пожалуйста, каким образом, можно в C++ сохранить функцию класса в переменную, и затем вызвать её из основного тела программы? Если делать всё просто в main, без разделение на классы, то всё работает. Я же хочу сделать именно в разных файлах.
Как бы я не пытался придумать, у меня выходит ошибка:
non-standard syntax; use '&' to create a pointer to member
Пробую как-то так:
//Class.h: class Class < public: typedef void(Class::*funcType)(); funcType func; void test(); >; //Class.cpp: #include "Class.h" #include Class::Class() < func = Class::test; >void Class::test() < std::cout //Program.cpp #include #include "Class.h" void mian()
Отслеживать
задан 5 июн 2019 в 11:21
3 1 1 бронзовый знак
К тому же указатель на метод немного отличается от указателя на функцию. Ему нужен объект, к которому этот указатель на метод мы можем применить. И тогда получится такая штука (c.*c.func)();
5 июн 2019 в 11:49
Пробовал ставить * и & в различных комбинациях, это не изменяло ошибку. Что-то не пойму, как использовать (c.*c.func)
Как вызвать функцию из функции, которая в классе?
Добрый день. Интересует, можно ли сделать следующее? Допустим у меня есть класс Class, в нём функция function1, а в ней - функция function2. Могу ли я при импорте класса вызвать function2 без вызова функции function1? Или эту функцию нужно returnить?
class Class(): def __init__(self): print('Hi!') def function1(self): def function2(): print('Hello!')
Хочу сделать так -
my_class = Class() my_class.function1().function2()
mahalaka ★★
23.03.16 13:31:45 MSK
Нужно возвращать. Зона видимости вложенной функции такая же, как у переменной => снаружи не видна.
lu4nik ★★★
( 23.03.16 13:33:31 MSK )
true_admin ★★★★★
( 23.03.16 13:34:00 MSK )
Понятно, всем спасибо. Закрываю тред.
mahalaka ★★
( 23.03.16 13:35:45 MSK ) автор топика
Хм, как мне получить такой синтаксис, допустим, если у меня несколько функций в функции function1?
my_class.function1().function2()
my_class.function1.function2()
Пока придумал только такое:
class Class(): def __init__(self): print('Hi!') def function1(self): def function2(): print('Hello!') def function3() print('blabla!') return class = Class() whatever = Class.function1() whatever['function2']() whatever['function3']()
mahalaka ★★
( 23.03.16 14:01:37 MSK ) автор топика
Ответ на: комментарий от mahalaka 23.03.16 14:01:37 MSK
Хм, как мне получить такой синтаксис, допустим, если у меня несколько функций в функции function1?
Ну так в function 1 возвращай объект, в котором определены функции 2 и 3.
Vovka-Korovka ★★★★★
( 23.03.16 14:20:54 MSK )
Ответ на: комментарий от mahalaka 23.03.16 14:01:37 MSK
У тебя function1 как-то по-особому генерирует function2 и function3, или нужна только для того чтобы «получить такой синтаксис»? Если второе (пока похоже на то), то тебе function1 вообще не нужна, можешь использовать там объект. Если первое, но синтаксис нужен такой, то пусть function1 возвращает объект вместо словаря. Задача-то этих махинаций какая? Посильнее запутать код?
Psych218 ★★★★★
( 23.03.16 14:27:51 MSK )
Последнее исправление: Psych218 23.03.16 14:29:43 MSK (всего исправлений: 1)
Могу ли я при импорте класса вызвать function2 без вызова функции function1
class Test: def fun1(self): def fun2(): print("Hello") a = Test() fun2_co = a.fun1.__code__.co_consts[1] # .__code__.co_consts is a tuple of fun1 local objects exec(fun2_co) # OR fun2 = lambda: exec(fun2_co) fun2()
anonymous
( 23.03.16 15:16:04 MSK )
Ответ на: комментарий от Psych218 23.03.16 14:27:51 MSK
Нет, мне нужна некая структуризация - есть класс, который используется для общения с одним сервисом, в нём есть функция смены статуса. И я хочу реализовать что-то типа service.change_status.active()
mahalaka ★★
( 23.03.16 15:46:03 MSK ) автор топика
Ответ на: комментарий от anonymous 23.03.16 15:16:04 MSK
mahalaka ★★
( 23.03.16 15:48:28 MSK ) автор топика
Ответ на: комментарий от mahalaka 23.03.16 15:46:03 MSK
И я хочу реализовать что-то типа service.change_status.active()
А почему не service.change_status(«active»), что было бы логичнее? (Вместо строки можно использовать и константу ACTIVE, суть не в этом).
Просто у тебя получается (даже синтактически), что change_status — это не функция, функция — active(). А change_status — некий объект, который этот набор функций хранит. Это (то, что ты хочешь, судя по желаемому синтаксису) делается так. Просто создай ещё один класс StatusChanger с этими функциями в нём. Но это довольно странно выглядит, непривычный вид API. Change по сути не является методом, а имя говорит обратное, а active, слово, которое «интуитивно» воспринимается не как метод, а как состояние, как раз является функцией. Всё наоборот. change_status можно сделать функцией, возвращающей объект с методами active() и остальными, конечно. Но тогда будет не как ты написал, а service.change_status().active()
Всё же гораздо логичнее будет, если change_status у тебя будет как раз функцией, которая в качестве аргументов принимает статусы, то есть service.change_status(active). Такой код гораздо понятнее и привычнее. Вот она функция, и вот она принимает аргумент. Ну статусами могут быть тоже функции, если хочется (ты можешь сделать active функцией) тогда change_status будет выполнять свой какой-то код и вызывать ещё одну функцию, но такой вид смотрится явно логичнее, чем service.change_status.active()
Просто когда кто-то, кто пользуется этим твоим классом, видит имя change_status, он наверняка предположит, что это функция, которая меняет статус. И всё. Не возвращает функцию, а меняет. Она же change_status, а не get_status_change_functions какая-нибудь. Логично предположить, что она выполняет смену статуса и возвращает успешность сего действа, или ничего, или сам статус, но никак не функцию, которая на самом деле меняет статус, но называется словом active, то есть именем статуса. Ты просто делаешь лишнюю сущность там, где она не нужна. По сути просто излишнее запутывание кода, ничего больше.
Psych218 ★★★★★
( 23.03.16 16:05:23 MSK )
Последнее исправление: Psych218 23.03.16 16:11:54 MSK (всего исправлений: 2)