Is this a operator overloading bug?

Tim Fang no at spam.com
Wed Jan 10 22:58:23 PST 2007


    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