您的位置:首页 > 教育 > 培训 > 重庆网站公司制作价格_人民日报今日头条新闻_珠海seo快速排名_最有效的15个营销方法

重庆网站公司制作价格_人民日报今日头条新闻_珠海seo快速排名_最有效的15个营销方法

2025/5/18 16:45:09 来源:https://blog.csdn.net/weixin_55341642/article/details/144148694  浏览:    关键词:重庆网站公司制作价格_人民日报今日头条新闻_珠海seo快速排名_最有效的15个营销方法
重庆网站公司制作价格_人民日报今日头条新闻_珠海seo快速排名_最有效的15个营销方法

目录

前言

C++ 与 C 语言的区别

C 语言的命名冲突问题

C++ 的命名空间


前言

从3月份开始记录博客,到如今也有8个月了,在这期间我学习了 C 语言,学习了数据结构初阶

接下来要学习的是 C++ ,而 C++ 是从 C 语言衍生而来的,所以 C++ 兼容 C 语言

最开始以 C++ 和 C 语言的区别学起走,到后面会深入讲解到 C++ 的各种内容


C++ 与 C 语言的区别

区别一:文件后缀

C 语言文件的后缀

test.c

C++ 文件的后缀

test.cpp

vs 编译器的原则是根据后缀来调用不同的编译器的,如果是 .c 的后缀,那么就是调用 .c 的编译器,如果是 .cpp 的后缀,那么就是调用 c++ 的编译器

区别二:在控制台上打印

C 语言打印

printf("hello world\n");

C++ 打印

cout << "hello world" << endl;

在 cpp 文件中,使用 printf 函数同样可以打印,因为 C+ 兼容 C 语言

验证:

C++ 中的 cout 和 endl 是要根据命名空间来定义的,否则就会编译不通过


C 语言的命名冲突问题

#include<stdio.h>
#include<stdlib.h>int rand = 0;int main()
{printf("hello world\n");printf("%d\n", rand);return 0;
}

可以看到,定义了一个全局变量 rand,然后再以 %d 的形式打印 rand 变量

正常情况下,会打印一个 "hello world" 和 一个数字 0

但是结果大相径庭:

报错中说:rand 被重定义了,以前的定义是“函数”

通过头文件可以发现,rand 在 #include<stdlib.h> 头文件中是函数

那么也就是说,我们定义的全局变量 rand 在 #include<stdlib.h> 这个头文件中是函数,导致了命名的冲突,所以才会报错

为了解决以上的问题,在 C++ 中才有了命名空间的概念


C++ 的命名空间

语法展示:

namespace rjj
{int rand = 0;
}

namespace 是命名空间的关键字

后面跟着的 rjj 可以看作是变量名,变量名随意取名都可以,但最好取有意义的名字

在大括号里面就是命名空间的内容,也就是需要避免命名冲突的变量

注意:大括号后面不需要加分号

语法使用:

printf("%d\n", rjj::rand);

不是将 rand 变量放入命名空间后,就能直接编译打印了,因为编译器一般是在全局或者先在头文件中查找,那么就还是会编译报错

所以是要通过 "::" 这个符号才能得到命名空间里的数据

"::" 这个符号为:域作用限定符;那么也就是说可以把命名空间看作是一个域,想要在命名空间里面找到数据就得使用域作用限定符才能查找

语法验证:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com