C++类型转换日记

来源:互联网 发布:unity3d玻璃材质下载 编辑:程序博客网 时间:2024/05/22 01:31

C++

类型转换

可以通过构造函数(int,double...转化成类)

如:

test.h#include<iostream>class A{private:double x;public:A(double );void show();}test.cpp#include"test.h"A::A(double  d){     x=d;}A::show(){std::cout<<x;}user.cpp#include"test.h"void Display(const A &);int main(){Display(20);return 0;}void Display(const A &a){a.show();}
//如果把构造函数前面加上一个explicit  则禁止隐式转化.Display(20)不可行了.可以写成
A a(20); 
Display(a);
转化函数:(类转化成int ,double....)

test.h#include<iostream>class A{private :int x;public:A(int);operator int()const;}test.cpp#include"test.h"A::operator int() const{return x;}A::A(int i){x=i;}user.cpp#include"test.h"int main(){A a=20;int val=a;std::cout<<val;
std::cout<<(int)a;//如果定义了多个转化函数,则应该把(int)加上,如果只有一个.可以不加!!!return 0;}