oop tutorials
    Jarrett Billingsley 
    kb3ctd2 at yahoo.com
       
    Tue Mar  4 06:55:28 PST 2008
    
    
  
"Saaa" <empty at needmail.com> wrote in message 
news:fqjknh$2lrm$1 at digitalmars.com...
> Thanks,
> Why isn't it initialized?
> I mean, when are these null referenced class pointers useful?
The same time any null pointer is useful - when you want to use it as a 
sentinel for some reason.
D is certainly not unique in this regard.  In all the languages I've ever 
used or seen, not one will automatically allocate an object when you declare 
a reference or pointer to one.
Maybe you're getting confused by C++ (I don't know your background) where:
Class c;
c.foo();
is legal, but something entirely different is happening here.  This is more 
like a D struct, where the class is allocated on the stack, not the heap. 
In D:
struct Struct
{
    void foo() {}
}
...
Struct s;
s.foo();
The D code:
Class c = new Class;
c.foo();
Translates to:
Class* c = new Class();
c->foo();
in C++.  Again, C++ will not automatically allocate a new class if you just 
write "Class* c". 
    
    
More information about the Digitalmars-d-learn
mailing list