超载,变化,运营商

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. 将EBS设为首页worklist删除误报

    参考:How To Remove Error Notifications From The Worklist (Doc ID 357904.1) 1.1. Use one of the error n ...

  2. cocos2dx环境配置和打包

    安装软件准备就绪: vs2012 cocos2d-x-2.2.1 adt-bundle-windows-x86_64-20121030 android-ndk-r9c-windows-x86_64 j ...

  3. 产品CEO?别傻了,你不是拿破仑

    编者按:本文出自技术产品经理Daniel Elizalde的博客,中文版由天地会珠海分舵进行编译. 全文针对如今流行的把产品经理比喻成"产品CEO"的这一说法进行深入的分析.跟大家 ...

  4. 文件搜索神器everything 你不知道的技巧总结

    everything这个软件用了很久,总结了一些大家可能没注意到的技巧,分享给大家 1.指定文件目录搜索示例: TDDOWNLOAD\ abc        在所有TDDOWNLOAD文件夹下搜索包含 ...

  5. 1!到n!的和

    Time Limit: 1 Sec  Memory Limit: 64 MB Submit: 23  Solved: 14 [Submit][Status][Web Board] Descriptio ...

  6. 初步STL集装箱Vector

    vector 特点: 1.可变长的动态数组 2.使用时包括头文件 #include <vector> 3.支持随机訪问迭代器 • 依据下标随机訪问某个元素时间为常数 • 在尾部加入速度非常 ...

  7. RPG游戏学习——1.任务脚本系统

    [前言] 近期准备做个rpg小游戏,所以開始研究rpg的一些系统.rpg最核心的应该是任务脚本系统(其它脚本系统类似),在參考了非常多网上的资料后,简要总结例如以下. [脚本的触发运行] 一个脚本须要 ...

  8. myeclipse中间classpath

    myeclipse中间classpath这是一个非常重要的问题 myeclipse是搜索寻找在按照时间其,和myeclipse有一个特殊的文件来保存classpath信息.这也是别人的项目文件的副本时 ...

  9. NET MVC权限验证

    ASP.NET MVC权限验证 封装类 写该权限类主要目地 为了让权限配置更加的灵活,可以根据SQL.json.或者XML的方式来动态进行页面的访问控制,以及没有权限的相关跳转. 使用步骤 1.要建一 ...

  10. 转让malloc()该功能后,发生了什么事内核?附malloc()和free()实现源

    特此声明:在本文中,引用另一篇文章和帖子,结合的概括的理解malloc()函数的实现机制. 我们常常会在C程序中调用malloc()函数动态分配一块连续的内存空间并使用它们.那么,这些用户空间发生的事 ...