Sul*_*lla 2 c++ namespaces include-guards include
我在两个名称空间中使用相同的类名,比如A和B.在包含不同命名空间的类时,包含警卫是否应该是唯一的?
我的意思是不能有两个文件名称AFile.h(在不同的目录中)具有相同的包含警卫和声明不同的命名空间?
档案1:
#ifndef AFILE_H
#define AFILE_H
命名空间A {
CAFile类
{...
};
};
#万一
文件2:
#ifndef AFILE_H
#define AFILE_H
命名空间B {
CAFile类
{...
};
};
#万一
Mat*_*Mat 10
如果某些代码(直接或间接)需要同时查看A :: CAFile和B :: CAfile,您的警卫需要有所不同.
包含保护由预处理器处理,它对所有类都不了解(更不用说名称空间了).如果在处理c ++文件时包含这两个文件,并且它们具有相同的标头保护,则只有一个声明将保留在编译器将看到的预处理源中.
看看像Boost文件这样的东西,他们有一些标题守卫的约定(如果我没记错的话).
| 归档时间: |
|
| 查看次数: |
1011 次 |
| 最近记录: |