# How to define multiple initialize methods in embedded mode?

**URL:** <https://www.ruby-forum.com/t/how-to-define-multiple-initialize-methods-in-embedded-mode/131455>\
**Category:** Ruby\
**Created:** [March 10, 2008, 9:20am UTC](https://www.ruby-forum.com/t/how-to-define-multiple-initialize-methods-in-embedded-mode/131455 "2008-03-10T09:20:46Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![chirag\_mistry\_ruby](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/ec9cab/32.png) [@chirag\_mistry\_ruby](https://www.ruby-forum.com/u/chirag_mistry_ruby)\
**Post date:** [March 10, 2008, 9:20am UTC](https://www.ruby-forum.com/t/how-to-define-multiple-initialize-methods-in-embedded-mode/131455/1 "2008-03-10T09:20:46Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![chirag\_mistry\_ruby](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/ec9cab/32.png) [@chirag\_mistry\_ruby](https://www.ruby-forum.com/u/chirag_mistry_ruby)\
**Post date:** [March 10, 2008, 12:32pm UTC](https://www.ruby-forum.com/t/how-to-define-multiple-initialize-methods-in-embedded-mode/131455/2 "2008-03-10T12:32:31Z")

</div>

On 3/10/08, Chirag M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> mMyClass = rb\_define\_class\_under(mMyModule, “MyClass”, rb\_cObject);  
> 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/](http://talklikeaduck.denhaven2.com/)
