网站建设分为几种,北京网站建设+++招聘信息,你的网站赚钱吗,网站建设艾瑞市场分析类型转换构造函数 定义
//类型转换构造函数#xff1a; //只有一个参数的构造函数#xff0c; //且参数不是自己的const 引用的构造函数#xff0c;也称之为 #xff1a;类型转换构造函数。 //类型转换构造函数#xff1a;
//只有一个参数的构造函数#xff0c;
//且参数…
类型转换构造函数 定义
//类型转换构造函数 //只有一个参数的构造函数 //且参数不是自己的const 引用的构造函数也称之为 类型转换构造函数。 //类型转换构造函数
//只有一个参数的构造函数
//且参数不是自己的const 引用的构造函数也称之为 类型转换构造函数。class Teacher88 {
public:Teacher88() {cout Teacher88 consturct using endl;}//Teacher88也叫做 类型转换构造 函数Teacher88(int age):m_age(age) {cout Teacher88 int consturct using endl;}void printf() {cout m_age this-m_age endl;}Teacher88(Teacher88 obj) {this-m_age obj.m_age;cout Teacher88 copy consturct using endl;}
private:int m_age;
};void main(){Teacher88 t1; //正常构造一个Teacher88命名为t1t1.printf();Teacher88 t2(20);//正常构造一个Teacher88命名为t2t2.printf();Teacher88 t3 80;//类型转换构造函数调用 。实际上 这里存在隐式的类型转换只是会调用 copy 构造函数t3.printf();
} 类型转换函数
1. const 是可选项,表示不应该改变待 转换 对象的内容 2. type 表示要转换成的某种类型 --这里对应double 3. 没有参数传递没有返回类型 4.但是确能返回一个type类型的值 5.必须定义为类的成员函数 6 static_cast也是会调用 operator double() //类型转换构造函数
//只有一个参数的构造函数
//且参数不是自己的const 引用的构造函数也称之为 类型转换构造函数。class Teacher88 {
public:Teacher88() {cout Teacher88 consturct using endl;}//Teacher88也叫做 类型转换构造 函数Teacher88(int age):m_age(age) {cout Teacher88 int consturct using endl;}void printf() {cout m_age this-m_age endl;}Teacher88(Teacher88 obj) {this-m_age obj.m_age;cout Teacher88 copy consturct using endl;}//类型转换函数//1. const 是可选项,表示不应该改变待 转换 对象的内容//2. type 表示要转换成的某种类型 --这里对应double//3. 没有参数传递没有返回类型//4.但是确能返回一个type类型的值//5.必须定义为类的成员函数operator double() const {return m_score;}void setScore(double score) {this-m_score score;}
private:int m_age;double m_score;
};void main(){Teacher88 t3 80;//类型转换构造函数调用 。实际上 这里存在隐式的类型转换只是会调用 copy 构造函数t3.printf();//类型转换函数调用t3.setScore(99.8);cout t3 9 endl;//结果为108.8 。隐式调用 cout t3.operator double() 10 endl; //结果为 109.8 显示调用static_castdouble(t3); // static_cast也是会调用 operator double()cout duandian endl;
}