1.C++入门(上)

目录

1.C++关键字

2.命名空间

作用域方面的优化

a.命名空间定义

b.命名空间使用

[3.C++ 输入&输出](#3.C++ 输入&输出)


1.C++关键字

C++有63个关键字,C语言有32个关键字,存在重叠如荧光笔标出

2.命名空间

作用域方面的优化

如果变量,函数和类的名称都存在于全局作用域中,可能会导致很多冲突

这时候就可以用到命名空间啦,目的是:对标识符的名称本地化,以避免命名冲突或名字污染

a.命名空间定义

使用到namespace + 命名空间的名字 + { }

1.正常的命名空间定义

2.命名空间可以嵌套

3.同一个工程中允许存在多个相同的命名空间,编译器最后会合成到一个空间中

ps: 一个工程中的.h和上面的.cpp中两个N1会被合并成一个

注意:++一个命名空间就定义了一个新的作用域++

b.命名空间使用

默认查找规则:

局部 -- 全局 -- using命名域(展开后为一种声明)

有三种方式

1.加命名空间名称及作用域限定符

2.使用using将命名空间中某个成员引入

3.使用using namespace 命名空间名称 引入

3.C++ 输入&输出

由以上代码可以提取出c++的一个模板:

cpp 复制代码
#include<iostream>
using namespace std;
cin>>a>>b>>endl;
cout<<a<<b<<endl;
  1. 使用cout标准输出对象(控制台)cin标准输入对象(键盘)时 ,必须包含**< iostream >头文件**

以及按命名空间使用方法使用std。

  1. cout和cin是全局的流对象,cout作用类似于printf,cin作用类似于类似于scanf。endl是特殊的C++符号,现在可以将它看作'\n',他们都包含在包含<iostream >头文件中。

  2. <<表示插入out,像打开袋子释放一样;>>表示in,像收紧袋子读入一样。

  3. 使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。 C++的输入输出可以自动识别变量类型

  • 头文件注意: 早期标准库将所有功能在全局域中实现,声明在.h后缀的头文件中,使用时只需包含对应 头文件即可,后来将其实现在std命名空间下,为了和C头文件区分,也为了正确使用命名空间,规定C++头文件不带.h;旧编译器(vc 6.0)中还支持<iostream.h>格式,后续编译器已不支持,因此推荐使用<iostream>+std的方式。
cpp 复制代码
#include <iostream>
using namespace std;
int main()
{
   int a;
   double b;
   char c;
     
   // 可以自动识别变量的类型
   cin>>a;
   cin>>b>>c;//输入b,c
     
   cout<<a<<endl;
   cout<<b<<" "<<c<<endl;
   return 0;
}
// ps:关于cout和cin还有很多更复杂的用法,
比如控制浮点数输出精度,控制整形输出进制格式等等。
因为C++兼容C语言的用法,可以用c语言实现这些要求,
这些又用得不是很多,我们这里就不展开学习了。
后续如果有需要,我们再配合文档学习。
  • std命名空间的使用惯例:
  1. 在日常练习中,建议直接 using namespace std 即可,这样就很方便。

2.using namespace std 展开,标准库就全部暴露出来了,如果我们定义跟库重名的类型 / 对象 / 函数,就存在冲突问题。该问题在项目开发中代码较多、规模大,就很容易出现。所以建议在项目开发中使用方案1,2

3.在一些oj题中,面对c++许多的头文件,可以使用万能头文件 #include<bits/stdc++.h>

//专栏持续更新中,敬请期待~

相关推荐
小c君tt4 分钟前
MFC中 error C2440错误分析及解决方法
c++·mfc
测试界的酸菜鱼4 分钟前
C# NUnit 框架:高效使用指南
开发语言·c#·log4j
GDAL4 分钟前
lua入门教程 :模块和包
开发语言·junit·lua
李老头探索6 分钟前
Java面试之Java中实现多线程有几种方法
java·开发语言·面试
小沈熬夜秃头中୧⍤⃝6 分钟前
【贪心算法】No.1---贪心算法(1)
算法·贪心算法
CSXB998 分钟前
三十四、Python基础语法(文件操作-上)
开发语言·python·功能测试·测试工具
web Rookie27 分钟前
JS类型检测大全:从零基础到高级应用
开发语言·前端·javascript
很楠不爱38 分钟前
Qt——窗口
开发语言·qt
yi碗汤园38 分钟前
【一文了解】C#基础-集合
开发语言·前端·unity·c#
木向39 分钟前
leetcode92:反转链表||
数据结构·c++·算法·leetcode·链表