use*_*536 14 c++ typedef global
我有一个typedef
typedef unsigned int my_type;
Run Code Online (Sandbox Code Playgroud)
在文件中使用.我想让它在我的所有文件中都可见,而不是把它放在一切包含的头文件中.我不想去头文件路由,因为它代表这将是头文件中的唯一声明(并且似乎没有必要为此添加文件).
有没有办法做到这一点?
如果相反,我有:
typedef X my_type;
Run Code Online (Sandbox Code Playgroud)
其中X是一个类,我是否需要在任何地方包含Xh并在Xh结束时使用typedef?
Bil*_*eal 18
我不想去头文件路由,因为它代表这将是头文件中的唯一声明(并且似乎没有必要为此添加文件).
有什么问题?似乎没必要不惜一切代价避免创建文件.
有没有办法做到这一点?
不是我所知道的.
我需要在任何地方都包含Xh并在Xh结束时使用typedef吗?
不,但这可能是最好的事情.你应该这样做的唯一原因是,如果X是一个模板,你需要模板在标题中.
据我所知,没办法解决这个问题.你为什么不用你想要的声明来制作一个globals.h头文件并包含它?
不要试图将你的typedef埋葬在某个地方,并希望"因为其他所有东西都悬挂在标题上",它就像添加一个全局标题一样好 - 拥有非自包含的标题是非常糟糕的做法.
此外,为了防止混乱全局命名空间创建自己的:
namespace MyTypes
{
typedef A B;
const unsigned int g_nMyGlobalType = 10;
// etc.
}
Run Code Online (Sandbox Code Playgroud)
这样你可以以一种不错的整洁方式使用你的全局变量:
MyTypes::B myVar; // etc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13837 次 |
| 最近记录: |