摘要:
一、前言:C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a。C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如int转换成char。 dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多态类型转换。 reinterpret_cast,仅仅重新解释类型,但没有进行二进制的转换。 4种类型转换的格式,如:TYPE B = static_cast(TYPE)(... 阅读全文
摘要:
——每个现象后面都隐藏一个本质,关键在于我们是否去挖掘写在前面:函数重载的重要性不言而明,但是你知道C++中函数重载是如何实现的呢(虽然本文谈的是C++中函数重载的实现,但我想其它语言也是类似的)?这个可以分解为下面两个问题1、声明/定义重载函数时,是如何解决命名冲突的?(抛开函数重载不谈,using就是一种解决命名冲突的方法,解决命名冲突还有很多其它的方法,这里就不论述了)2、当我们调用一个重载的函数时,又是如何去解析的?(即怎么知道调用的是哪个函数呢)这两个问题是任何支持函数重载的语言都必须要解决的问题!带着这两个问题,我们开始本文的探讨。本文的主要内容如下:1、例子引入(现象)什么是函数 阅读全文
摘要:
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp]view plaincopyinta=100;intb=a;而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。[c-sharp]view plaincopy#includeusingnamespacestd;classCExample{private: inta;public://构造函数 CExample(intb) {a=b;}//一般函数 voidShow() {coutusingnamespacestd;classCExample{p 阅读全文