文章目录
前言
在总结完c语言后,今天我来带大家聊聊c++的知识。c++听名字我们就知道它和c语言有非常深的渊源,实际上他们也确实有点形影不离,通常大家在谈到c或是c++时,都会带上彼此,所以学习c++对我们非常重要。
一、C++是什么?
本贾尼·斯特劳斯特卢普博士,于1979年四月份在贝尔实验室在分析UNIX系统内核流量时,希望有一种有效的更加模块化的工具。 1979年10月完成了预处理器Cpre,为C增加了类机制,也就是面向对象,1983年完成了C++的第一个版本,C with classes(带类的C)也就是C++。 那么我们就会考虑到一个问题,C和C++到底有什么异同呢?二、C++与C的不同点(先总结)
1.C++完全兼容C的所有内容;
2.C++支持面向对象的编程思想(抽象、封装、继承、多态);
3.支持运算符、函数重载;
4.支持泛型编程、模板;
5.支持异常处理;
6.类型检查严格。
三 、第一个C++程序
1.文件扩展名
.cpp .cc .C .cxx
2.编译器
g++大多数系统需要额外安装,ubuntu系统下的安装命令:
sudo apt-get update
sudo apt-get install g++
gcc也可以继续使用但需要增加参数 -xC++ -lstdc++
3.头文件
#include < iostream>
#include <stdio.h>可以继续使用
#include < cstdio> 建议这样使用
4.输入/输出
cout << 标准输出
cin >> 标准输入(不需要取地址,因为c++中有引用)
cout/cin会自动识别数据类型
scanf/printf也可以继续使用
注意:cout和cin是标准库类对象,而scanf/printf是标准库函数。
5.增加了名字空间
std::cout
using namespace std;
示例代码:
#include <iostream>
using namespace std;
int main()
{
int n = 0;
cin>>n;
cont<<"Hello world"<<endl;
cont<<n<<endl;
}
三.名字空间
1、名字空间:标识符的命名范围,就是把原本的全局空间进行拆分使用,形成一个个独立的命名空间,防止全局变量的命名冲突。namespace 空间名{
//定义变量
//定义函数
//设计新类型
}
注意:命名空间可以重名,同名的命名空间会自动合并(为了让声明和定义可以分开实现),同名命名空间如果有同名标识符,依然会命名冲突 。
2、如何使用命名空间:namespace n1
{
int num = 1;
namespace n2
{
int num = 2;
namespace n3
{
int num = 3;
}
}
}
多层名字空间在使用访问时逐层分解。
例如:如果要访问num=3的那个num,则:n1::n2::n3::num;
不同层次的空间中,可以重名,内层会自动屏蔽外层的标识符。
由于名字空间可以嵌套,这样就导致在使用内层成员时过于麻烦,可以给名字空间取别名来解决这个问题。