oop tutorials

Saaa empty at needmail.com
Tue Mar 4 07:09:29 PST 2008


I'm sorry, I've never used a null pointer (as far as I know) nor programmed 
in any oo style before.
I just thought that it would work like structures and if I wanted to have a 
nullpointer you could do something like:

Class[] className=void;

As I thought that most of the time you just want an instance and not just a 
reference to nothing.
Thats why I asked why other people wanted this null pointer.



>
> 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