第四周学习:类型转换运算符重载

#include<iostream>
using namespace std;
class T
{
    
    
	private:
		double real,imag;
	public:
		T(double d1=0,double d2=0):real(d1),imag(d2){
    
    }
		operator double() {
    
    return real;} //就是强制转换类型的时候,将T类转为double类,输出为real。 
};

int main()
{
    
    
	T t1(5.20);
	cout<<(double)t1<<endl;
	double n = 3.0+t1;  //隐式调用 t1.operator double() 
	cout<<n<<endl; 
}
  1. operator double()就是使用强制类型转换函数,return real就是把T类,变成double real;
  2. (double) t1是显式使用
  3. double n =3+ t1是隐式使用
  4. nuclear : t1.operator double()

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ZmJ6666/article/details/108570905