C++核心编程
文章平均质量分 91
一只菜只因啦
这个作者很懒,什么都没留下…
展开
-
C++核心编程06-输入和输出流
如果删去程序中的第7行和第10行,虽然在第8行和第11行中用成员函数setf设置了hex和oct格式,由于未终止dec格式,因 此hex和oct的设置均不起作用,系统依然以十进制形式输出。如果在C语言中用prinf函数输出不同类型的数据,必须分别指定相应 的输出格式符,十分麻烦,而且容易出错。格式标志见表13.5。在输出数据时,为简便起见,往往不指定输出的格式,由系统根据数据的类型采取默认的格式,但有时希望数据按指定的格式输出,如要求以十六进制或八进制形式输出一个整数,对输出的小数只保留两位小数等。原创 2023-10-25 17:01:08 · 51 阅读 · 1 评论 -
C++核心编程05-异常
标准库中也提供了很多的异常类,它们是通过类继承组织起来的。异常类继承层级结构图如下:每个类所在的头文件在图下方标识出来。原创 2023-10-25 16:33:30 · 25 阅读 · 1 评论 -
C++核心编程03-模板
c++提供了函数模板(function template.)所谓函数模板,凡是函数体相同的函数都可以用这个模板代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现不同函数的功能。1.2.1 什么是函数模板?hello.cpp程序是高级c语言程序,这种程序易于被人读懂。为了在系统上运行hello.c程序,每一条c语句都必须转化为低级的机器指令。然后将这些机器指令打包成可执行目标文件格式,并以二进制形式存储于磁盘中。原创 2023-10-25 15:48:34 · 30 阅读 · 1 评论 -
C++核心编程04-类型转换
新类型的强制转换可以提供更好的控制强制转换过程,允许控制各种不同种类的强制转换。C++风格的强制转换其他的好处是,它们能更清晰的表明它们要干什么。例如,如果将一个整型值赋给一个浮点类型的变量,编译器会暗地里将其转换成浮点类型。转换是非常有用的,但是它也会带来一些问题,比如在转换指针时,我们很可能将其转换成一个比它更大的类型,但这可能会破坏其他的数据。使用C风格的强制转换可以把想要的任何东西转换成我们需要的类型。标准c++提供了一个显示的转换的语法,来替代旧的C风格的类型转换。原创 2023-10-25 16:07:01 · 25 阅读 · 1 评论 -
C++核心编程02-类和对象
当一个对象被创建后,它的每一个成员函数都含有一个系统自动生成的隐含指针this,用以保存这个对象的地址,也就是说虽然我们没有写上this指针,编译器在编译的时候也是会加上的。定义一个结构体用来表示一个对象所包含的属性,函数用来表示一个对象所具有的行为,这样我们就表示出来一个事物,在c语言中,行为和属性是分开的,也就是说吃饭这个属性不属于某类对象,而属于所有的共同的数据,所以不单单是PeopleEat可以调用Person数据,AnimalEat也可以调用Person数据,那么万一调用错误,将会导致问题发生。原创 2023-10-25 01:39:18 · 95 阅读 · 1 评论 -
C++核心编程01-初始、C++对C的扩展
那时,尽管C委员会决定在C中引入const,但是,他们c中的const理解为”一个不能改变的普通变量”,也就是认为const应该是一个只读变量,既然是变量那么就会给const分配内存,并且在c中const是一个全局只读变量,c语言中const修饰的只读变量是外部连接的。由于C使用不同的扩展名来表示不同文件类型,因此用一些特殊的扩展名(如hpp或hxx)表示c++的头文件也是可以的,ANSI/IOS标准委员会也认为是可以的,但是关键问题是用哪个比较好,最后一致同意不适用任何扩展名。此标识符作为此组群的名字。原创 2023-10-24 21:08:47 · 31 阅读 · 1 评论