【足迹C++primer】49、超载,更改,运营商

超载,更改。运营商

Conversion Operators

转换操作符

operator type() const

Conversions to

an array or a function type are not permitted.

转换函数必须是成员函数。不能指定返回 类型,必须有一个空的參数列表。

函数通常应 const。

Defining a Class with a Conversion Operator(献给热爱英语的朋友

定义一个类,表示一个在0到255范围类的一个整数

class SmallInt
{
public:
    SmallInt(int i=0):val(i)
    {
        if(i<0 || i>255)
            throw std::out_of_range("越界!

!!

越界进球无效!

");
    }
    explicit operator int() const {return val;}  //转换操作符。不能有參数,是成员函数,没有返回类型
private:
    size_t val;
};

实现下面:

void fun1()
{
    SmallInt si;
    si=4;   //吧4隐式转换成SmallInt类型
//    si+3;   //隐式转换si为int类型,因为explicit这里会出错,加了explicit之后仅仅能显式转换
}

Conversion Operators Can Yield Suprising Results

重载操作符能产生惊人的结果

void fun2()
{
    int i=42;
//    cin<<i;   this code would be legal if the conversion to bool were not explicit!

}

说是这样说可是究竟有什么惊人的效果,反正我是没感觉!

explicit Conversion Operators

明白转换操作

说白了就是叫我们使用explicit来使用!

全代码!这次就简洁点哈哈!

/**
* 功能:重载。转换,运算符
* 时间:2014年7月19日15:05:21
* 作者:cutter_point
*/

#include<iostream>
#include <stdexcept>

using namespace std;

/**************************************
Conversion Operators
转换操作符
**************************************/
/*
operator type() const
Conversions to
an array or a function type are not permitted.
转换函数必须是成员函数。不能指定返回 类型,必须有一个空的參数列表。
函数通常应 const。
*/
/**
Defining a Class with a Conversion Operator
*/
//定义一个类。表示一个在0到255范围类的一个整数
class SmallInt
{
public:
    SmallInt(int i=0):val(i)
    {
        if(i<0 || i>255)
            throw std::out_of_range("越界!!!越界进球无效!");
    }
    explicit operator int() const {return val;}  //转换操作符。不能有參数。是成员函数。没有返回类型
private:
    size_t val;
};

void fun1()
{
    SmallInt si;
    si=4;   //吧4隐式转换成SmallInt类型
//    si+3;   //隐式转换si为int类型,因为explicit这里会出错。加了explicit之后仅仅能显式转换
}

/**
Conversion Operators Can Yield Suprising Results
重载操作符能产生惊人的结果
*/
void fun2()
{
    int i=42;
//    cin<<i;   this code would be legal if the conversion to bool were not explicit!

}

/**
explicit Conversion Operators
明白转换操作
*/

//说白了就是叫我们使用explicit来使用!

int main()
{
    return 0;
}

我来说一下,人活在这世界上肯定会遭遇非常多不幸和痛苦,并且一般这样的不幸的事从来都不是一个一个来的,他们会在你措手不及的时候一下子全来了。就像精明的猎人。在你露出破绽的一瞬间把所有的活力倾泻在你的身上,确保万无一失。

每一个人不可能一辈子都不犯错,可是当厄运来临的时候我们要时刻准备好,不要惊慌失措。冷静下来,好好想一想你应该怎样去面对!

版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2024-11-05 17:19:53

【足迹C++primer】49、超载,更改,运营商的相关文章

两种方式判断移动运营商

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 /**  * @author Stay  *      判断移动运营商  */ public class NetworkOperater extends Activity {     private static fina

铁狮门, 世界一流的房地产业开发商、运营商及基金管理公司

美国铁狮门 编辑 铁狮门(TISHMAN SPEYER)是世界一流的房地产业开发商.运营商及基金管理公司,擅长开发并与管理密切结合.铁狮门收购.开发.管理的物业总值达到681亿美元,目前在全球各大都市管理着362个项目.总面积1.3亿平方英尺的商业物业组合及9200万平方英尺的住宅单元,向中国和印度积极拓展投资和开发业务.TSP秉承创造最大的价值的哲学理念,并与每个单位或项目展开深入合作,鼓励文化的创造和跨学科的各种非常规思维的相互结合.TSP旗下的标志性建筑囊括洛克菲勒中心.克莱斯勒中心.柏林

判断手机号归属运营商

1 /** 2 * 手机号归属运营商查询 3 * @param phone 4 */ 5 public static void mobileOperator(String phone) { 6 // cmcc-中国移动手机号码规则 7 String cmccRegex = "^[1]{1}(([3]{1}[4-9]{1})|([5]{1}[89]{1}))[0-9]{8}$"; 8 // cucc-中国联通手机号码规则 9 String cuccRegex = "^[1]{1

浅谈运营商网络业务限速

无论在企业网还是运营商网络中,流量限速是一个逃不开的话题.在企业网中,开启限速主要是为了对带宽的合理运用:在运营商网络中,限速是为了成本和资费,一是向上级运营商付款,二是向下级客户收费.本篇假定的场景为客户接入的运营商网络. 当客户接入运营商后,运营商对于客户的流量会做限速,一般是配置在边界接入设备互联接口上.一般而言,配置的是单一的限速策略.就是说,客户需要的是100M带宽,那么就配置的是100M的限速.当客户购买两种业务,每种业务各50M,合计100M时,单一的限制100M已经无法满足需求了

思科设备实现运营商城域网架构ISIS+BGP+IPV6综合实验

使用GNS3 0.8.6版本模拟器(c3725-adventerprisek9-mz.124-15.T5.image) 实验拓扑: 实验要求: 1.   通过ISIS协议将AS内部的直连和环回口路由宣告. 2.通过配置IBGP协议建立邻居将所有的用户业务路由(大客户和PPOE拨号)宣告. 3.通过配置路由反射器实现市内.省内业务路由互传. 4.通过建立EBGP邻居实现全省和国干互联网路由互传. 5.通过配置黑洞路由实现用户业务网段聚合. 6.实现城域网网络架构由ipv4向ipv6平滑过渡. 实验

【高级】思科设备部署电信运营商城域网架构及配置实战

实验拓扑: GNS3 0.8.6 + c3725-adventerprisek9-mz.124-15.T5 实验要求: 1.   通过ISIS协议将AS内部的直连和环回口路由宣告. 2.通过配置IBGP协议建立邻居将所有的用户业务路由(大客户和PPPOE拨号)宣告. 3.通过配置路由反射器实现市内.省内业务路由互传. 4.通过建立EBGP邻居实现全省和国干互联网路由互传. 5.通过配置黑洞路由实现用户业务网段聚合. 实验步骤及验证: 1.接口及ip地址规划: 路由器 接口 ip地址 R1 F0/

玩转华为C8812---1突破运营商的重重限制

玩转华为C8812---1突破运营商的重重限制 本文由CSDN-蚍蜉撼青松[主页:http://blog.csdn.net/howeverpf]整理编辑,转载请注明出处! 一.为手机的Root权限解锁 Root是Android手机系统中的超级管理员账户,Root权限(即超级用户权限)和我们在Windows系统下的Administrator权限类似.默认状态下,为了防止系统文件被更改,Android系统并没有把Root账户开放给我们普通用户,我们必须先为Root权限解锁才能获取Root权限.网上一

防止运营商网络劫持,避免被他人强行插入广告

主要的网络劫持形式: 近年来流量劫持(运营商网络劫持)频频发生,各种方式也是层出不穷,易维信-EVTrust总结各种网络劫持现象和其带来的危害 1.域名劫持,用户想要访问网站A,域名却被解析到其它地址,用户无法正常访问想要访问的页面,网站流量受损.如果域名被解析到恶意钓鱼网 站,导致用户财产损失,例如网上用户本来想要访问某知名的金融网站,却被跳转到另一个见容极为相似的假冒网站,从而套取用户数据,导致企业与用户损失惨 重. 2.运营商网络劫持有的会在网站弹出广告,不是所有网站都会弹,一般大型门户网

【足迹C++primer】38、关联容器操作(1)

关联容器操作 关联容器中还定义了三个类型,如下: set<string>::value_type v1; //这个v1是string类型 set<string>::key_type v2; //这个v2是string类型 map<string, int>::value_type v3; //v3是pair类型pair<const string, int> map<string, int>::key_type v4; //v4是string类型 m