超载,变化,运营商

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;
}

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

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







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

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

    超载,更改.运营商 Conversion Operators 转换操作符 operator type() const Conversions to an array or a function typ ...

  2. CSP -- 运营商内容劫持(广告)的终结者

    缘由 我们公司最近手机端H5 经常受到商户和用户的投诉,说有广告并且导致不能正常进行操作,我们商户自己当然不会加广告了,但是商户和用户可不管这些了,就认为是我们的问题 探索发现根本 目前我们用的很多浏 ...

  3. 【工具类】获取手机sim卡的运营商

    加入权限:<uses-permission android:name="android.permission.READ_PHONE_STATE" /> package ...

  4. 电信运营商 IT 系统介绍

    业务支撑系统 BSS: Business support system  运营支撑系统 OSS: Operation support system  管理支撑系统 MSS: Management Su ...

  5. 国内各运营商(ISP)IP段表

    国内各运营商(ISP)IP段表 来源:http://bbs.hh010.com/forum.php?mod=viewthread&tid=490529&orderby=dateline ...

  6. 赵雅智_android获取本机运营商,手机号部分能获取

    手机号码不是全部的都能获取.仅仅是有一部分能够拿到. 这个是因为移动运营商没有把手机号码的数据写入到sim卡中.SIM卡仅仅有唯一的编号.供网络与设备 识别那就是IMSI号码,手机的信号也能够说是通过 ...

  7. BGP多线 有些BGP IP也会被极少数运营商劫持 取Ip逻辑

    小结: 1.租用的服务器只有一个IP,用户的访问路线是由路由器根据访客的实际访问速度选择最优访问路径,来选择访问的.而且不占用任何的服务器资源.服务器的上行和下行都是有路由器来选择最佳的路线,所以这样 ...

  8. 运营商如何关闭2G、3G网络?这事儿得从小灵通说起

    5G时代即将全面开启,主流声音是对未来的无限畅想--5G将带来翻天覆地的变化.不过凡事都有利弊两面性,5G作为新生事物固然大有可为,但不可避免地会对旧事物造成巨大冲击.除了会影响很多跟不上潮流发展的行 ...

  9. SDN/NFV运营商商业化部署

    三大运营商发布未来网络架构,并逐步加快SDN/NFV商业化部署的步伐.中国联通发布其新一代网络架构<CUBE-Net 2.0白皮书>,并与20多家合作伙伴共同启动了“新一代网络”合作研发计 ...

随机推荐

  1. Java没有源代码的同步集合~

    存档~~~~ Synchronized,volatile,lock 锁定->[就绪队列,阻塞队列] 第一个是jvm等级达到. 与volatile所不同的是,后者不能从工作存储器写回到主存储器. ...

  2. maven配置文件里改动默认jre

    方法一:打开%maven_home%\conf\setting.xml,仅仅会在新建项目时自己主动使用1.6的导入项目不会 在<profiles>标签内加入�例如以下配置: <pro ...

  3. Codeforces 451E Devu and Flowers(容斥原理)

    题目链接:Codeforces 451E Devu and Flowers 题目大意:有n个花坛.要选s支花,每一个花坛有f[i]支花.同一个花坛的花颜色同样,不同花坛的花颜色不同,问说能够有多少种组 ...

  4. Could not drop object &#39;student&#39; because it is referenced by a FOREIGN KEY constraint

    1. Find foreign keys SELECT * FROM sys.foreign_keys WHERE referenced_object_id = object_id('Student' ...

  5. github jekyll site不再使用Maruku由于Markdown翻译员,但kramdown

    今天写了一篇博客,之push至jekyll site on github在,发现总是错的,例如,下面的电子邮件消息: The page build completed successfully, bu ...

  6. 【转】MAT(Memory Analyzer Tool)工具入门介绍

    1.MAT是什么? MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速.功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗 ...

  7. ZOJ1463:Brackets Sequence(间隙DP)

    Let us define a regular brackets sequence in the following way: 1. Empty sequence is a regular seque ...

  8. or1200下Raw-OS学习(例子篇)

    没有图我说个~毛(J)线(B)~对吧??? 直接上一个以前做过的项目来说说怎么去从一个前后台的程序过度到利用操作系统去管理的你代码吧~以前想过直接用事件驱动的框架去编写代码的,无奈这方面的资料实在太少 ...

  9. n每个计数的概率和发生骰子--动态规划

    称号:该n骰子在地板上.所有点骰子的向上一面和一个S.进入n,打印S所有可能的值的概率. 声明思想非原创!仅仅因动态规划思想的使用非常好,记下. 分析:动态规划就是分阶段考虑问题.给出变量.找出相邻阶 ...

  10. LVM 命令集总结(转)

    PV 命令 下面的命令是在与物理卷相关的操作中最常用的命令: lsdev 列出ODM中的设备. chdev 修改设备的特征. mkdev 增加一个设备到系统中. chpv 修改物理卷的状态. lspv ...