既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
提到C++,大部分人都想到的是复杂的语法和大量的规则,相对于java和python等语言,需要程序员的要求更高,但C++的优势也是显而易见的,效率高、对细节的控制能力强,应用更广、性能更优等等,这篇文章,我们就从C语言开始,讨论C++的基础语法。
命名空间
C++这门语言被发明出来,其实就是为了解决C语言的缺陷与不足。在C语言中,有个很大的问题就是变量的命名冲突
问题。其中包括与自己定义的变量与库中定义变量之间的命名冲突问题和自己定义的变量之间的命名冲突问题。这个问题在C++中得以很好的解决。
于是在C++中定义了一个命名空间
的概念,命名空间是一种将全局作用域分割为更小、更具体的区域,避免命名冲突的方法。它允许在代码中定义一个区域
,使得其中定义的所有变量、函数、类等名字不会与其他命名空间中定义的名字冲突。命名空间使用关键字namespace
来定义,里面的域作用限定符为:::
下面举例子来演示如何在C++中使用命空间:
// 定义命名空间
namespace zyb
{
int rand = 0;
}
int main() {
// 使用命名空间中的变量
printf("%d\n",zyb::rand);
return 0;
}
其中,zyb是自己定义的命名空间的名字,默认情况下,编译器编译代码不会去命名空间限定的区域去找是否有定义的变量和函数、类等等,只有加上 命名空间名::命名空间中的变量名
,才能使用命名空间中限定的变量。
展开命名空间
在使用命名空间的时候,如果经常要使用命名空间中的变量、类等,经常使用限定符指定命名空间就很麻烦。那么,在确定不会出现命名冲突的工程或者自己练习的情况下,可以直接展开命名空间
,展开命名空间后,命名空间里的变量、类等都可以直接使用,不需要再使用限定符来指定命名空间。
展开命名空间格式:
using namespace 命名空间名;
使用C++官方命名空间中的输入输出
相信大家在看C++代码的时候,一定见过这样的代码来表示输入输出:
std::cout << "hello wrld";
std::cin >> a;
其中 << 和 >> 是头文件 < iostream > 中的一部分,分别被称为流插入运算符和流提取运算符。而 cout 和 cin 是C++中的IO流对象,cout 可以将数据输出到控制台或者文件中,cin 可以将控制台或文件中读入数据。这两个 IO 流对象都是定义在< iostream > 中,标准命名空间 std 中的组成部分,加上 std:: 修饰后,编译器就可以找到这个对象并使用。
那为什么看到好多代码中都没有使用 std:: 呢?
既然他们是官方命名空间中定义的,那么就可以在日常练习使用中提前展开它。
using namespace std;
但是在工程项目中尽量不要展开std,易发生命名冲突。
当然,在大项目中,为了方便,也可以使用指定展开
的方式,即只将 std 中的 cout cin 等展开以供使用。
using std::cout;
using std::cin;
这样,既避免了全部展开std 全部展开可能出现的命名冲突问题,又方便了书写。
IO流输入输出的使用方法
当展开官方的命名空间后,使用 cout 和 cin 就可以简单的实现输入和输出。
#include <iostream>
using namespace std;
int main() {
int num;
cout << "请输入一个整数:" << endl;
cin >> num;
cout << "您输入的数值是:" << num << endl;
return 0;
}
endl 是换行的意思,相当于C语言中的 ‘\n’ 。
呢么整个输入输出的规则为:
cout << 变量名或数值
:用于输出变量或数值。
cin >> 变量名
:用于从控制台接收输入,并将值存储到变量中。
缺省参数
缺省参数也是C++相对于C独有的。缺省参数
是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
//bbs.csdn.net/topics/618668825)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!