2.1、其他简单C++语句例子
下面这个程序要求运行时输入值
#include <iostream>
int main()
{
using namespace std;
int yuanshi;
cout << "How many yuanshi do you have?" << endl;
cin >> yuanshi;
cout << "Here are two more." << endl;
yuanshi += 2;
cout << "Now you have " << yuanshi << " yuanshi." << endl;
return 0;
}
下面是该程序的运行情况
该程序包含两项新特性:用cin来读取键盘输入以及将四条输出语句组合成一条。下面分别介绍它们。
2.1.1、使用cin
上面输出表明,从键盘输入的“158”最终被赋给变量yuanshi。下面就是执行该功能的语句:
cin>>yuanshi;
cin的用法与cout相反,iostream文件将cin定义为一个表示这种流的对象。输出时,<<运算符将字符串插入到输出流中;输入时,cin使用>>运算符从输入流中抽取字符,需要在运算符右侧提供一个变量,以便接收到抽取的信息。
2.1.2、使用cout进行拼接
cout << "Now you have " << yuanshi << " yuanshi." << endl;
这其实将几个语句进行合并输出,得出的结果与下面相似
cout<<"Now you have ";
cout<<yuanshi;
cout<<" yuanshi.";
cout<<endl;
或者
cout<<"Now you have ";
<<yuanshi;
<<" yuanshi.";
<<endl;
2.1.3、类简介
类是C++中面向对象编程(OOP)的核心概念之一。
类是用户定义的一种数据类型。要定义类,需要描述它能够表示什么信息及可对数据执行哪些操作。也就是说,类定义描述的是数据格式及其用法,而对象则是根据数据格式创建的实体。换句话说,类就好比985、211,而对象就好比清北。
现在来看cout,它是一个ostream类对象。ostream类定义(iostream文件的另一个成员)描述了ostream对象表示的数据以及可以对它的操作。
知道了类是用户定义的类型,但作为用户,并没有设计ostream和istream类。就像函数可以来自函数库一样,类也可以来自类库。这些类定义位于iostream文件中,没有被内置到编译器中。类描述指定了可对类对象执行的所有操作。要对特定对象执行这些允许的的操作,需要给该对象发送一条信息。C++提供了两种发送信息的方式:一种方式是使用类方法(本质上是函数调用,下面会讲),另一种是重新定义运算符,cin和cout用的就是这个方法。
2.2、函数
函数用于创建C++程序的模块,对C++的OOP定义至关重要,现在了解函数的一些基本特征。
C++函数分为两种:有返回值的和没有返回值的。下面首先来看有返回值的函数。
2.2.1、使用有返回值的函数
有返回值的函数将生成一个值,而这个值可赋给变量或在其他表达式中使用。例如,C/C++库包含一个名为sqrt()的函数,它返回平方根。假如要计算6.25的平方根,并将这个值赋给变量x,则可以在程序中使用下列语句:
x=sqrt(6.25);
括号内的参数传递给函数,得到的结果叫作返回值。在使用函数之前,C++编译器必须知道函数的参数定义和返回值类型。C++提供这种信息的方式是使用函数原型语句。
注:C++程序应当为程序中使用的每个函数提供原型。
如
double sqrt(double);
表示函数需要一个double参数,返回一个double参数。原型结尾的分号表明它是一条语句,这使得它是一个原型,而不是函数头。在程序使用函数时,可以通过两种方式提供原型:
1.在源代码文件输入函数原型
2.包含定义了原型的头文件
第二种更好,更有可能使原型正确。库文件包含了函数的编译代码,而头文件则包含了原型。
应在首次使用函数之前提供其原型,通常的做法是把原型放到main()函数定义的前面。
在C++中,cin和cout知道如何将信息转化为double类型,这些对象都很智能化。
2.2.2、函数变体
有些函数需要多项信息。如数学函数pow()。
double pow(double,double);
另外一些函数不接受任何参数。如随机函数rand(),并返回一个随机函数。
int rand(void);
关键字void明确指出,该函数不接受任何参数。如果省略void,则C++将其解释为一个不接受任何参数的隐式声明。
如果在函数之前加上void,代表该函数没有返回值。
2.2.3、自定义的函数
1.函数格式:和main()函数一致。
2.函数头:yuanshen的函数头是void yuanshen (int n),开头的void表明yuanshen()没有返回值,因此不能在赋值使用它。
2.2.4、在多函数程序中使用using编译指令
using namespace std;
1.将其放到main()函数前面,能让所有函数使用名称空间std的所有元素。
2.放到指定函数定义中,让该函数能使用名称空间std的所有元素。
3.其他用法与上一篇相似。
今天就那么多