- 论坛徽章:
- 0
|
这是一个运算符重载程序,我不太明白ob2的值是怎么得到的,创建对象ob2时有没有调用three_d(){x=y=z=0;} ,两个对象进行赋值时()运算符重载,x,y,z里原有的值是0还是ob1对象的值??请多多指教
#include <iostream>
using namespace std;
class three_d{
int x,y,z;
public:
three_d(){x=y=z=0;} // ????
three_d(int i,int j,int k) {x=i;y=j;z=k;}//?????
three_d operator(){(int a,int b,int c);
void show();};
three_d three_d::operator()(int a,int b,int c)
{
three_d temp;
temp.x=x+a;
temp.y=y+b;
temp.z=z+c;
return temp;
}
void three_d::show()
{
cout<<x<<" ,";
cout<<y<<" ,";
cout<<z<<" \n";
}
int main()
{
three_d ob1(1,2,3),ob2;//创建对象ob2时有没有调用three_d(){x=y=z=0;} ??
ob2=ob1(10,11,12);
cout<<"ob1:";
ob1.show();
cout<<"ob2:";
cout<<ob2.show();
return 0;
}
}
结果:ob1:1,2,3
ob2:11,13,15 :em15:
[ 本帖最后由 yanglinayp 于 2006-5-16 22:25 编辑 ] |
|