Const again
Jason House
jason.james.house at gmail.com
Sun Jan 27 07:17:03 PST 2008
naryl wrote:
> Is there a way to make something like this work in D 2.0?
>
> clone is supposed to make a new shallow copy of it's object:
>
> interface Cloneable
> {
> const Cloneable clone();
> }
>
> class Demo : Cloneable
> {
> public :
> this(){}
>
> this( Demo reference )
> {
> reference_ = reference;
> }
>
> override const Demo clone() {
> return new Demo( reference_ );
> }
> private:
> Demo reference_;
> }
>
> void main()
> {
> auto a = new Demo(new Demo);
> auto b = a.clone();
> }
>
> The method clone must be const and there must be a non-const constructor
> in Demo.
It looks like you should change this( Demo reference ) to this( const Demo
reference ). Is that what you were saying is not allowed? If so, can you
explain what's going wrong and why you can't?
More information about the Digitalmars-d-learn
mailing list