有没有一些方法可以在本地包含标准的东西(对于一个函数,一个类,等等...一次)而不是全局的。举一个非常简单的例子,你可能想要使用std::string,但它只在一个类中需要,并且你不希望它的开销存在于所有地方。
发布于 2011-01-16 00:48:18
您可能应该将需要#include的类移动到一个单独的文件中,而不是将其设置为本地。
发布于 2011-01-16 00:49:50
由于#include只是一种编译前的文本替换(由preprocessor),所以这只是一个将include语句放在哪里的问题。
您可能将“本地”称为“只在一个.cpp文件中”,而将“全局”称为“在所有.cpp文件中”。
如果是这样,您可以通过仅在.cpp文件中包含所需位置来将#include设置为“本地”。如果要在多个文件中包含具有一条#include语句的文件,请将include语句放入.h文件中,并将该.h文件包含在所有必需的文件中。
创建“全局”#include的一个好地方是充当precompiled header的.h头文件。
发布于 2011-01-16 00:57:58
做你想做的事情的一种方法是使用像class IMPL这样的嵌套类,并使用指向该类的指针作为类中的成员。您可以在单独的文件中定义和实现该your_class::IMPL。这样你就实现了完全的数据隐藏。
https://stackoverflow.com/questions/4700786
复制相似问题