目录
前言
学习C++之前 建议先学习C语言的知识。因为C++看似很多功能,都是用C语言来实现的。
熟练C语言之后对C++的学习有很大助力,并且某些硬件比如 Arduion 也是由C语言进行控制的。
作为计算机专业的学生,在大一开始也是从C语言入门的。但是学校并没有C++的课程。
想系统学习C++的我,机缘巧合之下报了顿开教育的C++全栈课程。没想到也是由C语言先开始教学,再进入C++。
C++和C语言的不同
学习C++之前,先了解一下C++与C语言的不同之处。
・文件后缀
C语言源文件的后缀为.c,C++源文件的后缀为.cpp
・C语言是面向过程编程,C++则是面向对象编程
・头文件
1.包含自己的头文件时不变
#include "xxx.h"
2.包含C语言标准库时的两种方法
#include <stdio.h> 保持原来方法不变
#include <cstdio> 去掉“.h ”在最前加上“c”
3.包含C++标准库时不需要“.h”
#include <iostream> C++标准输入输出头文件(Input/Output Stream)
・新增命名空间
在C语言中同一个作用域下不允许定义相同标识符(变量名,函数名等)
而C++中引入了命名空间之后可以重复使用同一标识符,从而增加了标识符的使用率
#include <stdio.h>
基本创建空间方法
namespace NameList1{
int varA=1;
void print(){
printf("variable in NameList1:%d\n",varA);
}
}
namespace NameList2{
int varA=1;
void print(){
printf("variable in NameList2:%d\n",varA);
}
}
通过上面的代码就可以通过不同的空间创建拥有相同名字的变量和函数了(叫空间中的成员或空间中的数据)
并且可以通过作用域分辨符“::”来使用他们
#include <stdio.h>
//基本创建空间方法
namespace NameList1 {
int varA;
void print() {
printf("variable in NameList1:%d\n", varA);
}
}
namespace NameList2 {
int varA=2;
void print() {
printf("variable in NameList2:%d\n", varA);
}
}
int main() {
NameList1::varA = 1;
NameList1::print();
NameList2::print();
return 0;
}
输出:
variable in NameList1:1
variable in NameList2:2
如此可见,名字虽然相同,但是所在的空间不同。可以通过 作用域分辨符“::”来区分并访问它们。
而作用域分辨符“::”还有另一个作用就是可以区分全局变量。
#include <stdio.h>
int Var = 2;
int main() {
int Var = 1;