C/C++题目--类型转换构造函数 左手的ㄟ右手 2022-01-14 05:47 200阅读 0赞 ### 题目:什么是类型转换构造函数 ### 【答案】 一个类的构造函数只有一个参数,而且这个参数不是该类的类型而是其他类型,这个构造函数就被称为类型转换构造函数。转换构造函数可以用来处理不同域的同一个数据值。 示例代码: class Polar { private: double radius; double angle; public: Polar() { radius=0.0; angle=0.0; } Polar(double r,double a) { radius=r; angle=a; } void display() { cout<<"("<<radius<<","<<angle<<")"; } double getr() { return radius; } double geta() { return angle; } }; class Rec { private: double xco; double yco; public: Rec() { xco=0.0; yco=0.0; } Rec(Polar p) {//由于Polar类的radius和angle是私有的,能通过转换构造函数来提取数值。 float r=(float)p.getr(); float a=(float)p.geta(); xco=r*cos(a); yco=r*sin(a); } void display() { cout<<"("<<xco<<","<<yco<<")"; } }; int main() { Rec rec; Polar pol(10.0,0.785398); rec=pol;//使用转换函数(或rec=Rec(pol)) cout<<"\Pol="; pol.display(); cout<<"\nRec="; rec.display(); return 0; }
还没有评论,来说两句吧...