114
голосов
10ответов
286609 просмотров

Calling C++ class methods via a function pointer

How do I obtain a function pointer for a class member function, and later call that member function with a specific object? I’d like to write: class Dog : Animal { Dog (); void bark (); } … Dog* pDog = new Dog (); BarkFunction pBark = &Dog::bark; (*pBark) (pDog); … Also, if possi...

4
голосов
1ответов
390 просмотров

Python class method - Is there a way to make the calls shorter?

I am playing around with Python, and I've created a class in a different package from the one calling it. In this class, I've added a class method which is being called from my main function. Again, they are in separate packages. The line to call the class method is much longer than I thought ...

105
голосов
3ответов
42937 просмотров

Calling a base class's classmethod in Python

Consider the following code: class Base(object): @classmethod def do(cls, a): print cls, a class Derived(Base): @classmethod def do(cls, a): print 'In derived!' # Base.do(cls, a) -- can't pass `cls` Base.do(a) if __name__ == '__main__': d =...

2
голосов
4ответов
305 просмотров

Есть ли разница между способами определения метода класса Ruby?

Учитывая следующие два способа определения метода класса в Ruby: class Foo class << self def bar # ... end end def self.baz # ... end end Есть ли между ними разница? Один предпочтительнее другого?

450
голосов
18ответов
321978 просмотров

В чем разница между методами класса и экземпляра?

В чем разница между методом класса и методом экземпляра? Являются ли методы экземпляра средствами доступа (получателями и сеттерами), а методы класса - почти всем остальным?

10
голосов
3ответов
16210 просмотров

Как мне вызвать методы класса + в Objective C, не ссылаясь на класс?

У меня есть ряд объектов «политики», которые, как мне казалось, было бы удобно реализовать как методы класса для набора классов политик. Я указал для этого протокол и создал классы, которым он должен соответствовать (только один показан ниже) @protocol Counter +(NSInteger) countFor: (Model...

5
голосов
2ответов
1616 просмотров

Почему instance_eval () определяет метод класса при вызове класса?

Foo = Class.new Foo.instance_eval do def instance_bar "instance_bar" end end puts Foo.instance_bar #=> "instance_bar" puts Foo.new.instance_bar #=> undefined method ‘instance_bar’ Насколько я понимаю, вызов instance_eval на объекте, чтобы вы могли определить переменну...

59
голосов
5ответов
12894 просмотров

Как понять разницу между class_eval () и instance_eval ()?

Foo = Class.new Foo.class_eval do def class_bar "class_bar" end end Foo.instance_eval do def instance_bar "instance_bar" end end Foo.class_bar #=> undefined method ‘class_bar’ for Foo:Class Foo.new.class_bar #=> "class_bar" Foo.instance_bar #=> "instance_ba...

11
голосов
3ответов
1660 просмотров

В Ruby есть какие-либо связанные приложения синтаксиса: class &lt;<self ... end></self>

class &lt;&lt; self attr_accessor :n, :totalX, :totalY end Приведенный выше синтаксис используется для определения переменных экземпляра класса. Но когда я думаю о том, что подразумевает синтаксис, это не имеет для меня никакого смысла, поэтому мне интересно, используется ли этот тип синтакс...

0
голосов
1ответов
323 просмотров

classmethod для Tkinter-Monitor-Window

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

108
голосов
6ответов
46852 просмотров

Как использовать define_method для создания методов класса?

Это полезно, если вы пытаетесь создать методы класса метапрограммно: def self.create_methods(method_name) # To create instance methods: define_method method_name do ... end # To create class methods that refer to the args on create_methods: ??? end Мой ответ, чт...

39
голосов
6ответов
19628 просмотров

Является ли плохим тоном вызывать метод класса как метод из экземпляра?

Пример Если у меня что-то вроде этого: class C(object): @classmethod def f(cls, x): return x + x Это будет работать: c = C() c.f(2) 4 Но разве это дурной тон? Стоит ли мне только звонить C.f() или c.__class__.f() Очевидно, это имеет смысл только в т...

4
голосов
2ответов
5977 просмотров

Объект сохраняет поведение методов класса Objective-C

Каков наилучший способ сохранения и освобождения объектов, переданных в методы класса? Например, если у вас объявлена ​​«переменная класса» так: static NSString *_myString = nil ... это правильно: + (void)myClassMethod:(NSString *)param { _myString = param; } ... который име...

22
голосов
4ответов
11900 просмотров

Что означает "я" в @classmethod?

Мне казалось, что я начинаю понимать "способ программирования на Python". Методы класса принимают self в качестве первого параметра для ссылки на экземпляр класса, в контексте которого вызывается метод. Декоратор @classmethod относится к методу, функциональность которого связана с классом, но ко...

254
голосов
17ответов
138250 просмотров

Какова цель методов класса?

Я учу себя Python, и мой последний урок был о том, что Python это не Java , поэтому я потратил некоторое время на превращение всех своих методов класса в функции. Теперь я понимаю, что мне не нужно использовать методы класса для того, что я сделал бы с static методами в Java, но теперь я не ...

17
голосов
7ответов
14656 просмотров

Есть ли способ вызвать частный метод класса из экземпляра в Ruby?

Разумеется, кроме self.class.send :method, args.... Я хотел бы сделать довольно сложный метод доступным как на уровне класса, так и на уровне экземпляра без дублирования кода. ОБНОВЛЕНИЕ: @ Джонатан Бранам: это было мое предположение, но я хотел убедиться, что никто другой не нашел вых...