C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

regarding static fn

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ language (comp.lang.c++)
View previous topic :: View next topic  
Author Message
raghavendra
Guest





PostPosted: Tue Mar 02, 2004 12:56 pm    Post subject: regarding static fn Reply with quote



Hi ,
A static member can be accessed only by another static method....but the
vice-versa is not true....Can anyone pls explain me the logic behind this...

Also in a project, if we have too many static members and methods, will it
cause a problem??

thanx for ur comments
regards,
Raghavendra Mahuli


Back to top
raghavendra
Guest





PostPosted: Tue Mar 02, 2004 1:01 pm    Post subject: Re: regarding static fn Reply with quote



What i mean by vice versa....
A static method can access non static members
"raghavendra" <raghavendra.ma (AT) in (DOT) bosch.com> wrote

Quote:
Hi ,
A static member can be accessed only by another static method....but the
vice-versa is not true....Can anyone pls explain me the logic behind
this...

Also in a project, if we have too many static members and methods, will
it
cause a problem??

thanx for ur comments
regards,
Raghavendra Mahuli





Back to top
Leor Zolman
Guest





PostPosted: Tue Mar 02, 2004 1:33 pm    Post subject: Re: regarding static fn Reply with quote



On Tue, 2 Mar 2004 18:31:30 +0530, "raghavendra"
<raghavendra.ma (AT) in (DOT) bosch.com> wrote:

Quote:
What i mean by vice versa....
A static method can access non static members
"raghavendra" <raghavendra.ma (AT) in (DOT) bosch.com> wrote in message
news:c220b1$kpk$1 (AT) ns1 (DOT) fe.internet.bosch.com...
Hi ,
A static member can be accessed only by another static method....but the
vice-versa is not true....Can anyone pls explain me the logic behind
this...

Also in a project, if we have too many static members and methods, will
it
cause a problem??

thanx for ur comments
regards,
Raghavendra Mahuli



A static member function cannot access non-static members using
/unqualified names/, but it can if those the names are qualified (by dot
(.), arrow (->) or :Smile (in the same way those members would be accessed
from code in a non-member function such as main()).

The thing to remember is that unqualified names within a member function
that resolve to non-static members of the same class act as if they were
preceded by "this->", implying that each instantiated object of the class
has its own copy of the data (or that it makes sense to call a member
function that requires a "this" object to operate upon).

A static member function has no "this" object, so it wouldn't make much
sense for code within such a function to say something like
int i = length();
meaning:
int i = this->length();
if there's no implicit object to apply the length() function to. So that
isn't allowed.

On the other side of the coin, within a /non-static/ member function, all
uses of unqualified static member names refer, by definition, to the same
object...although it makes equally little sense to /qualify/ these names
with . or -> or :: (well, the latter could make sense to force a
non-default scope resolution), C++ allows them all just so we all have
more options for creating cryptic code Wink
-leor




Leor Zolman
BD Software
[email]leor (AT) bdsoft (DOT) com[/email]
www.bdsoft.com -- On-Site Training in C/C++, Java, Perl & Unix
C++ users: Download BD Software's free STL Error Message
Decryptor at www.bdsoft.com/tools/stlfilt.html

Back to top
raghavendra
Guest





PostPosted: Thu Mar 04, 2004 5:31 am    Post subject: Re: regarding static fn Reply with quote

Thanx leor for the info.
I would also like to know why a static member can be accessed only by a
STATIC member function


Quote:
What i mean by vice versa....
A static method can access non static members

On the other side of the coin, within a /non-static/ member function, all
uses of unqualified static member names refer, by definition, to the same
object...although it makes equally little sense to /qualify/ these names
with . or -> or :: (well, the latter could make sense to force a
non-default scope resolution), C++ allows them all just so we all have
more options for creating cryptic code Wink
-leor



Back to top
Leor Zolman
Guest





PostPosted: Thu Mar 04, 2004 2:42 pm    Post subject: Re: regarding static fn Reply with quote

On Thu, 4 Mar 2004 11:01:01 +0530, "raghavendra"
<raghavendra.ma (AT) in (DOT) bosch.com> wrote:

Quote:
Thanx leor for the info.
I would also like to know why a static member can be accessed only by a
STATIC member function

But that's not the case. The only place the word "only" applies is here: a
non-static member can **only** be accessed--via an /unqualified/
call--from within a member function (as I explained earlier).

As the paragraph I wrote (which you quote below) says. A "non-static member
function" (the OPPOSITE of a "static member function"), can access statics
just fine...and regardless of what the "this" object is during such a call,
any access to a static member named "x" will yield the exact same singular
member whether you write the expressions as
x
or
this->x
or
(*this).x
or
classname::x

At this point, I highly suggest you just start writing some code to try out
the permutations. It should then make a lot more sense (like anything in
programming.)

Good luck,
-leor


Quote:


What i mean by vice versa....
A static method can access non static members

On the other side of the coin, within a /non-static/ member function, all
uses of unqualified static member names refer, by definition, to the same
object...although it makes equally little sense to /qualify/ these names
with . or -> or :: (well, the latter could make sense to force a
non-default scope resolution), C++ allows them all just so we all have
more options for creating cryptic code Wink
-leor


Leor Zolman
BD Software
[email]leor (AT) bdsoft (DOT) com[/email]
www.bdsoft.com -- On-Site Training in C/C++, Java, Perl & Unix
C++ users: Download BD Software's free STL Error Message
Decryptor at www.bdsoft.com/tools/stlfilt.html

Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ language (comp.lang.c++) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.