C++中namespace和class的区别
来源:互联网 发布:大数据先进技术研究院 编辑:程序博客网 时间:2024/05/21 22:55
class和namespace都是名称空间
但是class是封闭的,也就是class只能有一个头文件
namespace是开放的,特可以在多个文件里向同一个namespace里面添加东西,例如stl里面的东西都在名字空间std里面,但却定义在了多个文件里面。
class做名称空间时,与namespace形式上类似
但是namespace是开放的,可以追加内容,而class是一次性的
另外,对class A的成员M用A::M并不总是允许的,这种方法只在两种情况写有效:
1.类的成员函数引用本类(含祖先类)的成员
2.其它函数引用类的静态成员
因为类中定义了一个(非静态)成员变量,并没有定义实体,只是定义了一个名字。只有创建了类的实例(对象),成员变量的实体才存在。
但是namespace不存在这个问题,因为namespace中定义的变量,就是一个实体,在任何情况下(只要在可见域内)。对namespace A,A::M的写法都是允许的。
0 0
- C++中namespace和class的区别
- C和C++的区别 01.namespace
- objective-C中@class和#import的区别
- objective-c中#import和@class的区别
- Objective-c中@class和#import的区别
- Objective-C中@class和#import的区别
- Object- C中import和@class的区别
- objective-c中#import和@class的区别
- 黑马程序员:Objective-c中@class和#import的区别
- Objective-c中@class和#import的区别
- objective-c中#import和@class的区别
- objective-c中#import和@class的区别
- Objective-C中@class和#import的区别
- C++template中typename 和class的区别
- Objective-c 中#import 和 @class 的区别
- 关于 C# 中 Struct 和 C++/Cli 中 value class 的 new 和 gcnew 的区别
- C#struct和class的区别
- [C#]class和struct的区别
- 类似直播app点赞动画分析
- 打开pdm文件时,显示打印错误
- Action的生命周期
- 九、STL算法-删除算法(unique、remove)
- DAY7:leetcode #14 Longest Common Prefix
- C++中namespace和class的区别
- 使用 CJSON 在C语言中进行 JSON 的创建和解析的实例讲解
- SQL查看CLOB类型内容
- pixhawk mc_pos_control.cpp思路整理
- JAVA300笔记【0-5】
- Servlet开发(二)
- CocoaPods 命令和使用
- TCP/TP详解笔记1
- dfs连通块2