C++概述
发布日期:2022-02-07 06:39:43 浏览次数:5 分类:技术文章

本文共 2269 字,大约阅读时间需要 7 分钟。

C++概述


前言

我们学习了一个学期的C语言,相信大家都对编程有了一个相对全面的认识

现在我们要进入C++了,那么,到底C++和C有什么区别呢?
我们先来看一个输出hello,world 的小程序

#include 
using namespace std;int main(){ cout << "Hello, world." << endl; return 0;}

下面将会一点一点的解释上面程序和C的不同

输入输出

cout :一个智能对象

cout << "Hello, world." << endl;

以前无论要输出什么类型的数据,都要告诉编译器这是什么东东
用各种%d %s %f %l ……
现在不用了,我们使用cout的时候,直接输出就好了,
智能对象cin会知道你想要输出什么东西,然后就输出
(毕竟是智能的嘛)
后面的endl 则是我们的换行符(相当于”\n”)
所以我们可以这样子

int a = 1;double f = 2.3;cout << a << "   " << b << endl;cout << b << " 233333\n";//"\n"一样可以使用

上面的输出是这样子的

a   2.32.3 233333

cin: 也是一个智能对象

与cout类似

我们可以使用cin读取数据

int a;double b;double d;char ccin >> b;cin >> a >> d;cin >> c;//!!

cin读取字符的时候,能读空格,能读回车,只有遇见EOF才会不读

(如上面读取C时)
cin读取其余类型的时候,会自动跳过空白字符(空格回车等)

预处理,包含的文件及库

我们的stdio.h呢?

#inlcude<stdio.h>

相信大家都已经打过无数遍这条语句
在C++中,这个语句同样也可以使用,因此我们同样可以用pringf和scanf
不过,C++中,我们有更好的工具,这些工具,都放在了另外一个头文件里
因此我们有了
#include <iostream>
与C类似,内置的库文件我们用<>括起
而自定义的头文件则用双引号”“括住

其他库文件的区别

C中的stdlib.h string.h ctype.h math.h库文件会有变动呢?

在C++中,上面的库文件都是能用的
不过在C++中有个更好的写法

#include 
#include
#include
#include

总结而言,就是少了.h的后缀名,并在前面加C

原因嘛,据说是原本想用.hpp .hxx等做C++头文件的后缀名的
纠结来纠结去,统一不了
然后干脆就都不用后缀名了(简单粗暴的解决方法)

PS:

自定义的头文件还是要用.h的扩展名的,只不过是内置的库文件有改动
再PS:
c++里面有好多好多超好用的库,比C好用多了

名称空间简介

看到了我们的第二条语句:

using namespace std
翻译过来便是
使用 名称空间 std

什么是名称空间

简单来讲就是,

你的名字所在的一个集体
如果说你在七班里面,叫同学的名字:谢江钊,嗯,马上就能够找到
因为全班就一个叫谢江钊的
假设如果其他班也有有个叫谢江钊的,然后你在学校里找(不在七班里找)
惨了,两个同名的,谁是谁
这个时候,你就会加上一个限定范围的名字:计科7班
所以说,如果不在7班这一个名称空间里找这一个名字,你就必须加上限定范围的词汇
偏题了
之前我们所说到的,cin, cout ,都在std这一个名称空间里面
我们用
using namespace std
告诉编译器,我们使用了std名称空间里面的所有名字
之后我们便可以直接调用

如果没有那条语句把所有std名称空间里的名字导入怎么办

在大山中学里找谢江钊,同名的怎么区分?

我们给我们寻找的对象加上一个限定名:
计科7班::谢江钊
这下能够找到吧
同样,如果我们没有使用std名称空间
也可以使用
std::cin
这里的 : : 名字叫做作用域解析运算符
然后我们的程序就变成了这样子

#include 
//少了一条使用名称空间的语句 int main(){ std::cout << "Hello, world." << std::endl; return 0;}

那如果我只想要std名称空间里面的一个名字呢?

using std::cout;

PS

1. 文件iostream里包含了std名称空间,所以我们可以使用std
2. endl也是在std名称空间里的
3. cstdlib,cstring, cmath 里面的函数名字也是在std名称空间里面

引用

一个几乎能够替代指针的东东

长话短说,直接上swap函数对比(作用,交换两个数的数值)

void swap(int *a, int *b)//使用指针{    int temp = *a;    *a = *b;    *b = temp;    return ;}void swap(int &a, int &b)//使用引用{    int temp = a;    a = b;    b = temp;    return ;}

上面两个函数都能够达到相同的目的:交换两个数的数值。

至于为什么这样子呢?自己看看书吧,以后再详细写。

转载地址:https://blog.csdn.net/wyfwyf12321/article/details/54573092 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:设计模式——简介
下一篇:C++概述(二)

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月12日 21时33分33秒