Is this a operator overloading bug?

Bill Baxter dnewsgroup at billbaxter.com
Wed Jan 10 23:37:03 PST 2007


Btw, you might also want to check out Helix before you spend a bunch of 
time writing your own Vector3 type classes.
    http://www.dsource.org/projects/helix

--bb

Tim Fang wrote:
>     I am very new to D and I am trying to implement a Vector3 struct, please 
> take a look at the code below, why the output is "nananan"? I use dmd 1.00.
> 
> --code---------------------
> import std.stdio;
> 
> void main()
> {
>  Vector3 a;
>  a.set(1,1,1);
>  a = a*2;
>  writefln(a.x, a.y, a.z);
> }
> 
> 
> struct Vector3
> {
>  float x,y,z;
> 
>  // constructor
>  void set(float _x, float _y, float _z)
>  {
>   x = _x;
>   y = _y;
>   z = _z;
>  }
> 
>  Vector3 opMul(float s)
>  {
>   Vector3 ret;
>   ret.x = x*s;
>   ret.y = y*s;
>   ret.z = z*s;
>   return ret;
>  }
> } 
> 
> 



More information about the Digitalmars-d mailing list