Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   C++ (http://www.velocityreviews.com/forums/f39-c.html)
-   -   [Fwd: perl AUTOLOADER vs c++] (http://www.velocityreviews.com/forums/t286278-fwd-perl-autoloader-vs-c.html)

Billy N. Patton 10-15-2004 08:42 PM

[Fwd: perl AUTOLOADER vs c++]
 


-------- Original Message --------
Subject: perl AUTOLOADER vs c++
Date: Fri, 15 Oct 2004 13:28:18 -0500
From: Billy N. Patton <b-patton@ti.com>
Organization: Texas Instruments
Newsgroups: alt.comp.lang.learn.c-c++

Assume I have a perl class/module called Ui.

The need for this is to have ALL io the exact same.

If I need a new switch my command line parser will just add it to the
hash of the blessed class. I don't have to export the method to get to
the data I can simple call the class with the proper name and the
autoload will take care of the rest, With a little coding in the auto
loader.
Ex:
if I pass in -abc some_value.
the command line parser will set in my hash 'abc' => 'some_value'

With out the autoloader I have no access unless I've exported the hash
But with the autoloader I can do
$val = $ui->abc();


I've created a Ui class in C++. All the variables are declared as
static. I only want one copy of each variable.
Currently, I'm having to do a get and a set type method for each
variable in my private section.

Does c++ have something similar to perls autoloader?
THis would greatly increase the functionality of my Ui class.
Dynamic switches and methods :)

--
___ _ ____ ___ __ __
/ _ )(_) / /_ __ / _ \___ _/ /_/ /____ ___
/ _ / / / / // / / ___/ _ `/ __/ __/ _ \/ _ \
/____/_/_/_/\_, / /_/ \_,_/\__/\__/\___/_//_/
/___/
Texas Instruments ASIC Circuit Design Methodlogy Group
Dallas, Texas, 214-480-4455, b-patton@ti.com

--
___ _ ____ ___ __ __
/ _ )(_) / /_ __ / _ \___ _/ /_/ /____ ___
/ _ / / / / // / / ___/ _ `/ __/ __/ _ \/ _ \
/____/_/_/_/\_, / /_/ \_,_/\__/\__/\___/_//_/
/___/
Texas Instruments ASIC Circuit Design Methodlogy Group
Dallas, Texas, 214-480-4455, b-patton@ti.com

David Hilsee 10-15-2004 10:45 PM

Re: perl AUTOLOADER vs c++]
 
"Billy N. Patton" <b-patton@ti.com> wrote in message
news:ckpcnr$jl7$1@home.itg.ti.com...
>
>
> -------- Original Message --------
> Subject: perl AUTOLOADER vs c++
> Date: Fri, 15 Oct 2004 13:28:18 -0500
> From: Billy N. Patton <b-patton@ti.com>
> Organization: Texas Instruments
> Newsgroups: alt.comp.lang.learn.c-c++
>
> Assume I have a perl class/module called Ui.
>
> The need for this is to have ALL io the exact same.
>
> If I need a new switch my command line parser will just add it to the
> hash of the blessed class. I don't have to export the method to get to
> the data I can simple call the class with the proper name and the
> autoload will take care of the rest, With a little coding in the auto
> loader.
> Ex:
> if I pass in -abc some_value.
> the command line parser will set in my hash 'abc' => 'some_value'
>
> With out the autoloader I have no access unless I've exported the hash
> But with the autoloader I can do
> $val = $ui->abc();
>
>
> I've created a Ui class in C++. All the variables are declared as
> static. I only want one copy of each variable.
> Currently, I'm having to do a get and a set type method for each
> variable in my private section.
>
> Does c++ have something similar to perls autoloader?
> THis would greatly increase the functionality of my Ui class.
> Dynamic switches and methods :)


Perl and C++ are very different languages. C++ doesn't have Perl's AUTOLOAD
feature or AutoLoader module (which presumably depends on the AUTOLOAD
feature). Functions must be declared before they are used, and you can't
depend on a "magic" function "finding" the function's definition for you at
runtime (at least, not on any implementation I've ever seen). I see a few
options. You can either write getters/setters by hand, make the data
members public (blech), or instead use an associative container like a
std::map<std::string,SomeType> to map a string key to its value. Then you
could just write

SomeType GetSomeType( const std::string& key ) {
// may want to throw an exception if key is not in map
return container[key];
}

I'd probably just write the getter and setter for each member unless there
are a lot of members, in which case I might consider using the associative
container.

--
David Hilsee




All times are GMT. The time now is 05:08 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.