|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Hi
I have embedded Ruby in C++ application. I want to define multiple "initialize" method in the Ruby class. Please let me know which sequence of call is required to implement it? I tried following sequence of call but it is not working. It only defines last "initialize" method. Code snapshot: #################### // Define class under “MyModule†module mMyClass = rb_define_class_under(mMyModule, "MyClass", rb_cObject); rb_gc_register_address(&mMyClass); // Define “initialize†method without any parameter rb_define_method(mMyClass, "initialize", reinterpret_cast<VALUE(*)(...)>(defaultInitialize) , 0); // Define “initialize†method with one parameter rb_define_method(mMyClass, "initialize", reinterpret_cast<VALUE(*)(...)>(initialize1), 1); #################### In above code, it is only calling “initialize1†which accepts single parameter. Please let me know what is wrong in above code snapshot and correct it so I can define more than one “initialize†method in same class. -- Posted via http://www.ruby-forum.com/. |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
On 3/10/08, Chirag Mistry <chirag80bece@gmail.com> wrote:
> Hi > > I have embedded Ruby in C++ application. I want to define multiple > "initialize" method in the Ruby class. Please let me know which sequence > of call is required to implement it? I tried following sequence of call > but it is not working. It only defines last "initialize" method. > > Code snapshot: > #################### > // Define class under "MyModule" module > mMyClass = rb_define_class_under(mMyModule, "MyClass", rb_cObject); > rb_gc_register_address(&mMyClass); > // Define "initialize" method without any parameter > rb_define_method(mMyClass, "initialize", > reinterpret_cast<VALUE(*)(...)>(defaultInitialize) , 0); > // Define "initialize" method with one parameter > rb_define_method(mMyClass, "initialize", > reinterpret_cast<VALUE(*)(...)>(initialize1), 1); > #################### > > In above code, it is only calling "initialize1" which accepts single > parameter. Please let me know what is wrong in above code snapshot and > correct it so I can define more than one "initialize" method in same > class. It can't be done. Ruby doesn't have the concept of overloading. -- Rick DeNatale My blog on Ruby http://talklikeaduck.denhaven2.com/ |
|
![]() |
| Outils de la discussion | |
|
|