1
49
只需将#include看作是将包含文件的内容复制并粘贴到#include指令的位置。 这意味着,是的,包含文件中的所有内容都将位于名称空间内。 |
2
18
问:你能:
问:这是个好主意吗。
如果在没有名称空间标记的情况下包含Apple.g会发生什么。
您应该尽量避免出现这样的情况:您的代码的用户需要了解应该如何使用它。如果您的文档中说总是#将apple头文件包含在foo名称空间中,那么用户将无法读取该位,从而导致数小时的混乱。 |
3
2
学会爱上第三个例子,把它分成三个独立的文件。那真的是最清楚的方法了。
如果您真的想在其他名称空间中包含文件,可以将
|
4
2
我个人更喜欢你的第一个选择。 编辑,好的…你可以做一些事情(可能需要清理,未经测试):
很确定名称空间\u WRAP对这种类型的东西不起作用,所以您可能需要将它放在不同的头文件或“.ipp”或其他什么文件中,然后执行以下操作:
即使这样也可能行不通,您必须超越我的知识范围,看看boost预处理器元编程库是如何包含宏的。你可能会发现,这个库最终会让你想要的东西变得更容易。
|
5
1
可能,每个模块都应该引用“Foo::A”类,您可以将宏定义放在需要其他版本“A”的模块的开头。
但这使得代码更难理解。也许,如果需要在对象的实现之间进行选择,最好使用工厂函数。这将使您的意图在整个代码中都很明确。
|
6
0
方法2一路。
1.)源代码应清晰、易于理解和防伪。
2.)如果最终产品没有性能差异,请遵守规则1
3.)优雅的设计总是很好用的,所以规则2总是正确的。
|
Daniel Viaño · 将函数移动到不同的文件 7 年前 |
Trojax · 编译多个。c和。h文件 7 年前 |
Stevoisiak · 为什么#包含打破全局变量? 7 年前 |
jaxonjma · 在另一个JSP中动态发送并包含JSP 7 年前 |