C++初学(2)

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.其他用法与上一篇相似。

今天就那么多

相关推荐
不去幼儿园37 分钟前
【MARL】深入理解多智能体近端策略优化(MAPPO)算法与调参
人工智能·python·算法·机器学习·强化学习
Mr_Xuhhh39 分钟前
重生之我在学环境变量
linux·运维·服务器·前端·chrome·算法
Ajiang28247353042 小时前
对于C++中stack和queue的认识以及priority_queue的模拟实现
开发语言·c++
盼海2 小时前
排序算法(五)--归并排序
数据结构·算法·排序算法
幽兰的天空2 小时前
Python 中的模式匹配:深入了解 match 语句
开发语言·python
Theodore_10225 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
网易独家音乐人Mike Zhou5 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
‘’林花谢了春红‘’6 小时前
C++ list (链表)容器
c++·链表·list
----云烟----7 小时前
QT中QString类的各种使用
开发语言·qt
lsx2024067 小时前
SQL SELECT 语句:基础与进阶应用
开发语言