结构体运算符重载出错分析

定义结构体时,希望重载“=”运算符,但是总是报错:

1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(3159) : error C2679: 二进制“=”: 没有找到接受“const PT3”类型的右操作数的运算符(或没有可接受的转换)

。。。。。。。。。。。

后来发现,参数传递要使用“const

 1 struct PT3 
 2 {
 3     double x, y, z;
 4     PT3()
 5     {
 6         x = 0;        y = 0;        z = 0;
 7     }
 8     PT3(double vx, double vy, double vz)
 9     {
10         x = vx;        y = vy;        z = vz;
11     }
12     PT3& operator=(const PT3& vpt)
13     {
14         x = vpt.x;    y = vpt.y;    z = vpt.z;
15         return *this;
16     }
17 };

 

posted @ 2016-04-24 22:26  尘世俗人  阅读(404)  评论(0编辑  收藏  举报