c++之命名空间和结构体
来源:互联网 发布:东莞软件外包公司 编辑:程序博客网 时间:2024/05/23 01:20
(1)C++的命名空间
关键字:namespace 用来定义命名空间
一个中大型软件往往由多名程序员共同开发,会使用大量的变量和函数,不可避免地会出现变量或函数的命名冲突。当所有人的代码都测试通过,没有问题时,将它们结合到一起就有可能会出现命名冲突。
例如很多人都参与了一个文件管理系统的开发,它们都定义了一个全局变量 fp,用来指明当前打开的文件,将他们的代码整合在一起编译时,很明显编译器会提示 fp 重复定义(Redefinition)错误。
为了解决合作开发时的命名冲突问题,C++ 引入了命名空间(Namespace)的概念。
命名空间将全局作用域分成不同的部分,不同命名空间中的标识符可以同名而不会发生冲突,命名空间可以相互嵌套,全局作用域也叫默认命名空间。
命名空间的3种使用方式:
#include <stdio.h>namespace nameA{void swap(int *a, int *b){int temp = *a;*a = *b;*b = temp;}};int main1_3(){int a = 10;int b = 20;using nameA::swap; //第一种方式 “::”叫做域解析符swap(&a, &b);printf("a = %d, b = %d\n", a, b);return 0;}int main1_2(){using namespace nameA; //第二种使用方式int a = 10;int b = 20;swap(&a, &b);printf("a = %d, b = %d\n", a, b);return 0;}int main(){int a = 10;int b = 20;nameA::swap(&a, &b); //第三种使用方式printf("a = %d, b = %d\n", a, b);return 0;}
(2)c++的结构体
C语言不认为结构体是一种新的变量类型,只是一种数据的集合,所以在定义变量要指定 struct 关键,但是C++认为是结构体是一种新的变量类型,可以直接用来定义变量。
比如:struct Student{int id;char name[20];void print(){printf("id = %d, name = %s\n", id, name);}};int main(){Student stu = { 12345, "wang" }; //可以直接用Student来定义一个变量并且对这个结构体赋值stu.print(); //直接调用了结构体里的函数return 0;}
阅读全文
1 0
- c++之命名空间和结构体
- 标准C++编程学习第一天之C++命名空间&结构体的定义和使用
- C++笔记 命名空间,结构体
- C/C++:命名空间
- c++学习之命名空间和异常
- Django之URL的命名空间和命名模式
- Django之URL的命名空间和命名模式
- 从C到C++的升级之命名空间和数据类型
- System.Threading 命名空间的类、结构和接口
- C++-namespace(命名空间)
- C++-namespace(命名空间)
- C++namespace命名空间
- C#.Net命名空间
- C++_命名空间
- C++namespace命名空间
- 【C++】命名空间
- [C++]namespace命名空间
- C\C++命名空间
- div的显示和隐藏
- matlab zeros和ones
- 51Nod 1012 最小公倍数LCM
- Jetty 与Tomcat的pom文件配置
- Vue UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例
- c++之命名空间和结构体
- MyEclipse安装教程
- 命令行启动windows系统服务
- 16个java代码性能优化及android代码优化技巧
- Tools(四)——FileU3DBuild
- Activity State Changes
- 深入理解Java虚拟机——JVM性能优化
- CF
- Web worker耗尽原因定位