explicit关键字 sizeof

前段时间经常看到explicit关键字,由于忙,也没去搞清楚它到底什么意思。这段时间闲了下来,补补课,看了看书,终于明白它的含义了。

先说说用构造函数作为隐式转换函数。在C++中,凡是一个类有只带一个参数的构造函数,都定义了一组隐式转换,把构造函数的参数类型转换为该class的类型。比如Integer(int)就定义了一个从int到Integer类型的隐式转换。比如,对于以下代码:

extern void calc(Integer );
int i;

calc( i );

如果Integer类没有声明一个Integer(int)的构造函数,编译器将在calc(i)处报错。相反如果Integer类声明了一个Integer(int)型的构造函数,那么int值可以被用在任何需要Integer类型的地方。

如果我们不期望编译器自动的进行这种隐式转换,该怎么办呢?有一种解决办法,就是把它声明为显式的(explicit):

class Integer {
public:
explicit Integer( int);
// ...
};

这样当编译到隐式的类型转换时,编译器将报错,说明不能执行隐式转换。我们可以使用强制转换的形式显式的执行转换操作,如:

extern void func(Integer );

int main() {
func(99);//错误,从int到Integer没有隐式转换
func(Integer(99)); //OK,显式转换
func(static_cast<Integer>(99));//OK,强制转换
};

  

爱华网本文地址 » http://www.aihuau.com/a/25101014/190875.html

更多阅读

怎么使用百度指数查询关键字 百度关键字排名查询

百度指数在线工具是百度旗下产品只要的功能在于分析关键字每天的查询量,查询分布,使用人群,职业等等详细的分类,那么如果有效的时候百度指数工具呢?怎么使用百度指数查询关键字——步骤/方法怎么使用百度指数查询关键字 1、首先在百度中

怎样在网页中查找关键字 如何在网页查找关键字

怎样在网页中查找关键字——简介网页中查找特定关键字怎样在网页中查找关键字——方法/步骤怎样在网页中查找关键字 1、火狐浏览器编辑-查找-输入关键词-自动就弹出来了,还可以区分大小写。怎样在网页中查找关键字 2、IE浏览器,点右

百度关键词搜索量排名查询 百度关键字查询

百度关键词搜索量排名查询——简介如果作为一名seo不知道关键词每天有多少搜索量是一件很悲惨的事,通过搜索量和自己被收录的文章流量与搜索总量做一个对比是每个seo从业人员必做的一件事。百度关键词搜索量排名查询——工具/原料百

百度关键字价格查询 关键词优化报价单

百度关键字价格查询——简介网站优化专员如果在一个客户接到一个关键词排名单子,在谈的过程中,这个关键词的如何给客户一个报价,这样就要考虑百度关键字价格查询。那么如何查询关键词价格?百度关键字价格查询——工具/原料关键词价格工

怎么使用谷歌关键字工具 谷歌关键字分析工具

怎么使用谷歌关键字工具——简介做网站,我们需要做关键字分析,而谷歌提供的关键字工具是广大站长必须会使用的工具,那么,这种工具该怎么使用?今天,小编就教大家怎么使用谷歌关键字工具怎么使用谷歌关键字工具——工具/原料谷歌关键字工具

声明:《explicit关键字 sizeof》为网友一棵凋零的草分享!如侵犯到您的合法权益请联系我们删除