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

今天就那么多

相关推荐
AC赳赳老秦几秒前
时间开销自动统计:OpenClaw 记录工作任务时长、分析时间分配、给出优化建议
java·大数据·开发语言·python·自动化·deepseek·openclaw
祉猷并茂,雯华若锦20 分钟前
Appium 3.x 实战:元素定位与常见错误解析
开发语言·python·appium
Lethehong33 分钟前
飞算Java:从需求梳理到风险闭环,搭建云盾企业信息安全与权限管理平台
java·开发语言
旖-旎37 分钟前
《LeetCode 416 分割等和子集》
c++·算法·leetcode·动态规划·背包问题
Jasmine_llq1 小时前
《P15798 [GESP202603 五级] 有限不循环小数》
算法·有限小数判定数论定理·质因子约分检验·枚举生成合法数字·哈希集合去重·快速 io 优化
爱喝水的鱼丶1 小时前
SAP-ABAP:ALV数据导出增强——实现Excel/PDF/CSV多格式自定义导出
开发语言·性能优化·sap·abap·erp
学计算机的计算基1 小时前
操作系统八股文:进程与线程全面梳理(附调度算法+IPC+锁机制)
java·算法
Mortalbreeze1 小时前
深入理解 Linux 线程机制(四):线程同步——条件变量与信号量
linux·运维·服务器·开发语言·c++
不会c+1 小时前
C语言:入门到精通(408考研版)系列七 派生的数据类型
c语言·开发语言