首页 > 编程语言 > 详细

C++类型转换运算符及其重载

时间:2021-05-25 16:57:07      阅读:18      评论:0      收藏:0      [点我收藏+]

我们知道C++中内置的一些类型之间是可以相互装换的:

int a;

double b=3.14;

a=(double)b3;

我们希望自己写的类也可以进行类型转化

(1)将其他类型转换为我们写的类类型:只需要在构造函数中添加该类型的参数,然后将该参数的值赋给成员变量

class Person
{
public:
    int age;
    Person(int i=0):age(i){
    }
};
Person p;
p = (Person)4;
(2)将自己的类类型转化为其他类型,需要重载类类型操作符,函数形式如:operator 类型名称() const{返回其他类型的变量}
class Person
{
public:
    int age;
    operator int() const{
        return age;
    }
};
 Person p;
 p.age = 12;
 int a = (int)p;
上面的转换都是显示的转换,也可以写成隐式转换,Person p;p = 4;和Person p;p.age=12;int a = p;
这样直接的隐式转换有时候会在我们不经意间就实现了,甚至我们本不想让其进行转换,所以为了避免这种情况。C++允许在上面的构造函数或者重载类类型的方法前面加上explicit关键字,之后就不能进行隐式的类型转换了。

C++类型转换运算符及其重载

原文:https://www.cnblogs.com/maycpou/p/14808747.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!