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


    我们知道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关键字,之后就不能进行隐式的类型转换了。
  • 相关阅读:
    htb系列-Web Challenges-Console
    htb系列-Web Challenges-FreeLancer
    离散数学1复习要点
    样本均值和总体均值的区别
    chapter7.参数估计
    计算机系统基础复习指北
    C语言学生信息管理系统
    数学的意义
    计算机系统基础第一章
    C语言文件读写的操作
  • 原文地址:https://www.cnblogs.com/maycpou/p/14808747.html
Copyright © 2020-2023  润新知