所以有时将静态数据成员称为类变量,使用静态数据成员可以节省内存空间。静态数据成员可由任意访问权限许可的函数访问。因为静态数据成员不从属于任何一个具体对象,所以必须对它初始化,而且对它的初始化不能在构造函数中进行。解:本程序的执行结果如下:s=12s=17s=35从上述执行结果可以看到,类MyClass1中静态数据成员s不是属于某个对象a、b或c,而是属于所有的对象。......
2023-11-07
输入/输出是程序的基本功能。C++的标准输入/输出流库用于数据的输入/输出,用于输入/输出的流库包含在头文件iostream.h中。
1.输出
C++定义了运算符“<<”的iostream类,而“<<”就是用于处理内部类型的输出。使用cout输出流可在屏幕上显示字符和数字。C++提供了一些操纵符,可以直接嵌入到输入/输出语句中来实现输入/输出格式控制。表1.4列出了几个常用的输入/输出流操纵符。
注意:在使用setprecision和setw操纵符时应在程序开头包含iomanip.h头文件。
表1.4 常用的输入/输出流操纵符
(1)显示常数
使用cout可以显示字符串和数字,并可显示多个值。
【例1.3】分析以下程序的执行结果。
解:上述程序中,使用cout输出各数值。程序的执行结果如下:
(2)八进制和十六进制数的输出
在某些情况下,程序需要以八进制或十六进制数的形式输出。C++提供了简单的实现方法:只要在输出流中输出操纵符dec(十进制)、oct(八进制)或hex(十六进制)即可。
【例1.4】分析以下程序的执行结果。
解:上述程序中,分别以十进制、八进制和十六进制输出n的值。程序的执行结果如下:
十进制:100
八进制:144
十六进制:64
注意:一旦使用了进制操纵符,该操纵符的作用域一直连续到程序结束,或者遇到另一个进制操纵符。
(3)控制输出宽度(www.chuimin.cn)
C++提供的setw操纵符可以指定每个数值占用的宽度,即这个字符占用的最小字符长度。
【例1.5】分析以下程序的执行结果。
解:上述程序中,使用setw操纵符以不同的宽度输出f的值。程序的执行结果如下:
从执行结果看到,当用setw设置的宽度小于实际宽度时,该设置无效。
注意:setw操纵符只对紧跟着它的数值有效。如果要为多个数值设定宽度,必须多次使用setw操纵符。
(4)控制输出精度
C++提供的setprecision操纵符可以设置显示数值的精度。
【例1.6】分析以下程序的执行结果。
解:上述程序中,通过setprecision操纵符以不同的数值的精度输出d的值。程序的执行结果如下:
注意:一旦使用了setprecision操纵符,该操纵符的作用域一直连续到程序结束,或者遇到另一个setprecision操纵符。
2.输入
C++提供了输入流cin,可以利用输入流cin读取键盘输入的字符和数值,并把它赋给指定的变量。从键盘上输入的数据通过cin接收,再由提取运算符“>>”送到程序指定的变量中。因此,用户输入数据时要避免输入的数据超出指定变量的值域。
【例1.7】分析以下程序的执行结果。
解:上述程序中,用cin接受用户输入的两个整数,然后输出这两个整数之和。程序的执行结果如下:
注意:使用cin输入一个字符串时,其中不能含有空格,否则,cin认为输入结束。可以使用cin的成员函数getline来接收含有空格的字符串,其使用格式如下:
其中,len指出输入的最多字符个数。
有关C++程序设计基础教程的文章
所以有时将静态数据成员称为类变量,使用静态数据成员可以节省内存空间。静态数据成员可由任意访问权限许可的函数访问。因为静态数据成员不从属于任何一个具体对象,所以必须对它初始化,而且对它的初始化不能在构造函数中进行。解:本程序的执行结果如下:s=12s=17s=35从上述执行结果可以看到,类MyClass1中静态数据成员s不是属于某个对象a、b或c,而是属于所有的对象。......
2023-11-07
程序设计是指设计、编写和调试程序的方法与过程。由于程序是软件的本体,因此软件的质量主要通过程序的质量体现,因此,研究一种切实可行的程序设计方法至关重要。继承是面向对象程序设计方法的一个重要标志,利用继承机制可以大大提高程序的可重用性和可扩充性。......
2023-11-07
当重载输出运算符“<<”用于输出时,相当于创建一个插入符函数。“函数体”中给出实现该插入符重载目的的代码。该语句等价于:cout<>”在C++中,“>>”运算符称为提取运算符,对它进行重载的函数称为提取符函数。......
2023-11-07
声明函数模板的一般格式如下:template<模板参数表>函数返回值类型函数模板名(形参表)函数模板定义由关键字template开头,表示声明一个模板。模板参数表写在尖括号<>中,参数一般由关键字class或typename后加一个标识符构成。Class和typename的意义相同,表示后面的标识符是一个参数类型,代表一个潜在的标准类型或用户定义的类型。例如,定义max函数模板求两个数中的较大者。如下面的声明是错误的:可以看出,用函数模板比函数重载更方便,程序更简洁。......
2023-11-07
在类声明中,public、private和protected是关键字,称为成员访问限定符,它们分别表示公有、私有和保护的成员访问权限。其他函数不能访问该类的保护数据成员,也不能调用该类的保护成员函数。◇一旦给出了成员访问限定符,它后面的成员都具有这个成员访问权限,直到出现另一个成员访问限定符或类声明结束为止。类的成员函数可以访问类的所有成员,没有任何限制,而类的对象对类的成员的访问是受成员访问控制符制约的。......
2023-11-07
多态从实现的角度来讲可以划分为两类:编译时的多态和运行时的多态。按照绑定进行阶段的不同,可以分为两种不同的绑定方法:静态绑定和动态绑定,这两种绑定过程中分别对应着多态的两种实现方式。有些多态类型,其同名操作的具体对象能够在编译、连接阶段确定,通过静态绑定解决,比如重载、强制和参数多态。包含多态操作对象的确定就是通过动态绑定完成的。分析以下程序的执行结果。......
2023-11-07
类的每一个成员函数都有一个隐含的特殊指针,通常称为this指针,this指针的类型就是成员函数所属的类型。通常不显式使用this指针。this指针是C++实现封装的一种机制,它将对象和该对象调用的成员函数连接在一起,在外部看来,每个对象都拥有自己的成员函数。this指针一般用于返回当前对象自身。程序的执行结果如下:s1∶n=2s2∶n=1s3∶n=3this指针大量用于运算符重载成员函数设计中,这将在后面详细介绍。......
2023-11-07
表8.2流格式状态标志续表2.设置流格式状态标志的成员函数虽然无法直接对流格式状态标志进行操作,但可以使用ios类提供的公有成员函数来操作这些标志。例如,以下程序用成员函数setf设置ios∷left标志,用unsetf清除ios∷left设置:程序执行结果如下:默认对齐456.23456.23左对齐456.23456.23恢复默认齐456.23456.23采用setiosflags/resetiosflags操纵符是等价的。......
2023-11-07
相关推荐