设为首页 加入收藏

TOP

C++入门学习笔记(二)
2016-12-06 20:24:46 】 浏览:1914
Tags:入门 学习 笔记
小Char bool 1

Short,wchar_t 2

Int,long,float 4

Float,long double 88、 显式类转换显示类型转换只是得到了一个所需类型的中间变量,原来变量的类型并不发生改变。标准C++中主要有4中显式类转换类型运算reinterpret_cast,static_cast,const_cast,dynamic_cast.1. reinterpret_cast语法:returnvalue=reinterpret_cast(casting value);这个操作符修改了操作数类型,但仅仅是重新解释了对象的比特模型而没有进行二进制转换。从语法上看,这个操作符仅用于指针类型的转换(返回值是指针)。它用来将一个类型指针转换为另一个类型指针,它只需在编译时重新解释指针的类型。这个操作符基本不考虑转换类型之间是否是相关的。reinterpret_cast常用的场景如下:1)普通指针转换,T*—>U*—>T*,保证T*经过一些列转换值不变比如将不同类型的指针存在一个容器里,vector可以存int*,char*,string*等各种指针,只要有别的方式确定某个void*当初的类型是T*,标准保证reinterpret_cast(v[i])可以得到当初的值。2)自己做memory allocator,可以将T*转换为U*,这个时候可能要注意字节对其的问题。2、static_cast语法:T static_cast (expression);该运算符把expression转换成type-id类型,但没有运行时类型检查来保证转换的安全性。static_cast是最经常用到的转换操作符,它最经常的一个应用就是将隐式转换变成显示转换,以消除编译器可能产生的warning,同reinterpret_cast不同,采用static_cast转换的两个类型之间一般有某种相关性。static_cast主要应用场景如下:1)用于类层次结构中基类和派生类之间指针或引用的转换。这个转换中,将派生类转成基类是安全的,将基类转成派生类时由于没有进行动态类型检查,所以是不安全的。2)用于基本数据之间的转换。如把int转成char,int转成num等。3)把空指针转换成目标类型的空指针。4)把任何类型的表达式转换成void类型。3、dynamic_cast语法:dynamic_cast < type-id > ( expression )该运算符把expression转换成type-id类型的对象。Type-id必须是类的指针、类的引用或者void *;dynamic_cast的转换是在运行时进行的,它的一个好处是会在运行是做类型检查,如果对象的类型不是期望的类型,它会在指针转换的时候返回NULL,并在引用转换的时候抛出一个std::bad_cast异常。dynamic_cast一般只在继承类对象的指针之间或引用之间进行类型转换。如果没有继承关系,则被转化的类具有虚函数对象的指针进行转换。4.const_castconst_cast< type-id > (exdivssion)这个运算符可以用来去除一个对象的const或volatile属性。type-id必须是一个指针或者引用。- 9、&—–取地址符运算例如: int e[3]={1,2,3};

Int *p;

p=&e[2];

则:

*p=2;

*(p+1)=3;

*(p-1)=1;10、C++语言中的基本数据类型及其范围 11、类类描述了一类食物,以及食物所应具有的属性,是一种用户自定义的数据类型。声明一个类时,以class关键字开始,接着是类的名字,其语法结构为: Class <类名称>

{

private:

[<私有数据和函数>]

public:

[<公有数据和函数>]

}类表示了一组相似的对象,是创建对象的有效模板,用它可以产生多个对象。类所代表的是一个抽象的概念或事物,在客观世界中世纪存在的是类的实例,即对象。类时具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了一个统一的抽象描述,其内部包括属性和服务两个主要部分。类包含以下3种类型:- private:私有类型包含数据和函数,在private关键字后面声明。如果省略private关键字,则必须紧跟在类名的后面声明。在类中声明的数据和函数如果不特别指明,都被视为私有类型。私有类型的数据值允许类本身声明的函数对其进行存取,而类的外部的任何函数都不能访问。- public:公有类型public关键字后面声明,他们是类与外部的接口,任何外部函数都可以访问公有类的数据和函数。- protect:保护类型用于类的继承,当类的成员被声明为protect时,从类的外部就不能对其进行访问。类时面向对象程序最基本的单元。在设计面向对象程序时,首先要以类的方式设计实际待解决的问题,也就是将问题索要处理的数据定义成类的私有或公有类型数据,同时将处理问题的方法定义成类的公有或私有成员函数。11、对象对象时系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,有一组属性和对这组属性进行操作的一组服务组成。属性和服务是构成对象的两个基本要素,其定义是:属性是用来描述对象静态特征的一个数据项;服务是用来描述对象动态特征的一个操作序列。对象是类的实例,可以声明类时直接定义对象。此外,还可以在声明类之后再单独声明类对象。 Class example

{

Int I;

Public;

Float f;

Void fun();

};

Example A;对象声明后即可使用,使用方法如下:对象名.成员函数名和对象名,数据成员名例,可以按一下方式调用类example中的成员函数fun();A.fun();12、类和类之间的关系1.关联关系关联关系表示两个类之间存在某种语义上的联系,即与该关联链接的类的对象之间具有一定的语义链接关系,该关系表达了类之间的一种相关性。2.依赖关系依赖关系描述的是两个类之间的语义上的连接关系,它是一种Use-A关系。假设两个元素A与B,如果修改元素A的定义可能会一起对另一个元素B的定义的修改,则称元素B依赖于A。3.聚合关系聚合关系是一种Has-A关系,它体现的是类之间的一种整体与部分的关系。4.泛化关系泛化关系是一种Is-A关系,它描述的是类之间“一般”与“特殊”的关系。具有共同特性的元素可以抽象为一般类,并通过增加其内涵,进一步抽象成特殊类。改关系可以将类组成一种有层次,有分类的结构。13、多态性多态性是指类中具有相似功能的不同函数使用同一个名称实现。多态性的实现与联编有关。将一个函数的调用与其相应的函数体代码相链接的过程,成为函数联编。静态联编,动态联编编译时的多态性是通过静态联编来实现的。静态联编是指在调用同名函数时,编译器将根据调用时所使用的实际参数个数、类型的不同确定应该调用哪一个函数的实现,它是在程序编译阶段就确定下来的多态性。静态联编通过使用重载机制来获得,重载机制包括函数重载和运算符重载。14、形参和实参形参:全称为“形式参数”是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参。没有形参的函数在形参表的位置应该写void.main 函数也可以有形参和返回值,其形参也称

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 2/11/11
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇数独 约束求解 C++ and Python 下一篇C++面向对象高效编程:数据抽象

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目