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>

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

相关推荐
桀人3 分钟前
C++——模板初阶(收录在专栏C++入门到精通)
开发语言·c++
一直有一个ac的梦想11 分钟前
cmu15445 2025fall lec 18 transactions with two-phase lock
java·开发语言·数据库
小O的算法实验室15 分钟前
2026年MCS,Q-learning增强MOPSO与改进DWA融合算法+复杂三维地形下特定移动机器人动态路径规划
算法
JAVA社区25 分钟前
Java进阶全套教程(四)—— SpringMVC框架详解
java·开发语言·spring·面试·职场和发展
Lumbrologist30 分钟前
【C++】零基础入门 · 第 2 节:变量、基本数据类型与输入输出
java·开发语言·c++
XX風35 分钟前
CMake / Make / Ninja / MSVC / GCC / Clang / MSBuild —— 完整体系化理解
c++
码完就睡1 小时前
C语言——动态内存
c语言·开发语言
xyq20241 小时前
Java 数组
开发语言
Peter·Pan爱编程1 小时前
10. new_delete 不是 malloc_free 的包装
c++·人工智能·算法
雨辰AI1 小时前
人大金仓 V9 生产级专用监控大盘(含 120 + 指标 + 告警规则 + 一键导入)
java·开发语言·数据库·mysql·政务