Property change problem

Zarathustra adam.chrapkowski at gmail.com
Mon Jul 21 09:36:55 PDT 2008


I have got following code:

________________________________________________________
module main;
import std.stdio;
import std.process;

struct SSome{ 
  long a = 0;
  long b = 0;
}
class CFoo{
  private SSome m_u;
  private SSome m_v;

  public SSome u(SSome o_u){ return this.m_u = o_u; }
  public SSome u(         ){ return this.m_u;       }

  public SSome v(SSome o_v){ return this.m_v = o_v; }
  public SSome v(         ){ return this.m_v      ; }
}

class CBar{
  private CFoo m_foo;

  public CFoo foo(CFoo o_foo){ return this.m_foo = o_foo; }
  public CFoo foo(          ){ return this.m_foo        ; }

  this()
  body{
    this.m_foo = new CFoo;
  }
}

void
main(char [][] args){
  SSome l_some = SSome(1, 2);
  CFoo l_foo = new CFoo;
  writefln("l_foo.u.a: ", l_foo.u.a);
  l_foo.u = l_some;
  writefln("l_foo.u.a: ", l_foo.u.a);
  CBar l_bar = new CBar;
  writefln("l_bar.foo.u.a: ", l_bar.foo.u.a);
  l_bar.foo.u.a = 5;   // no effect
  writefln("l_bar.foo.u.a: ", l_bar.foo.u.a);
  system("pause");
}
________________________________________________________
result:
  l_foo.u.a: 0
  l_foo.u.a: 1
  l_bar.foo.u.a: 0
  l_bar.foo.u.a: 0
________________________________________________________
How to easy change value of property l_bar.foo.u.a? Because the above way doesn't work.



More information about the Digitalmars-d-learn mailing list