重载特型运营商

来源:互联网 发布:无敌淘宝网 编辑:程序博客网 时间:2024/04/30 01:01

c++已经知道如何在内置的数据类型之间进行转换。然而,它不知道如何将我们的任何用户定义的类。这就是重载特型运营商。

重载特型运营商允许我们把我们班转换成另一种数据类型。看看下面的类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
classCents
{
private:
    intm_nCents;
public:
    Cents(intnCents=0)
    {
        m_nCents = nCents;
    }
 
    // Overloaded int cast
    operatorint() { returnm_nCents; }
 
    intGetCents() { returnm_nCents; }
    voidSetCents(intnCents) { m_nCents = nCents; }
};

有两件事要注意

1)过载功能让我们班一个int,我们写了一个新的功能在我们的类称为算子int()。请注意,有字算子和我们铸造的类型之间的空间

2)铸造运营商没有返回类型。C + +假设您将返回正确的类型

现在,在我们的例子中我们称这样的printint()

1
2
3
4
5
6
7
intmain()
{
    Cents cCents(7);
    PrintInt(cCents);// print 7
 
    return

c++已经知道如何在内置的数据类型之间进行转换。然而,它不知道如何将我们的任何用户定义的类。这就是重载特型运营商。

重载特型运营商允许我们把我们班转换成另一种数据类型。看看下面的类:

1
2
3
4
5
6
7
8
9
10
11
12
13
classDollars
{
private:
    intm_nDollars;
public:
    Dollars(intnDollars=0)
    {
        m_nDollars = nDollars;
    }
 
     // Allow us to convert Dollars into Cents
     operator Cents() { returnCents(m_nDollars * 100); }
};


0 0
原创粉丝点击