有什么方法可以将一个文件包含在一个类中,以便它可以使用它,但不允许包括该类在内的任何东西进入范围才能使用它?为简化起见,假设我在名为 IO 的类中有 iostream header ,我使 IO 能够使用 cout 函数编写内容,但不允许包含 IO 的任何内容能够使用 iostream header 中的任何内容。这不是我想做的,但我需要弄清楚这一点,这样我就不会“双重定义”事情。
最佳答案
是的,您可以,只需将其包含在 cpp
中即可不在h
.
// IO.h
// note the lack of #include <iostream>
class IO
{
// IO stuff...
void f();
};
然后在cpp
:
// IO.cpp
#include "IO.h"
#include <iostream>
IO::void f()
{
std::cout << "Hello world!" << '\n';
}
当您包含 IO.h
时在其他一些文件中,您不包括 <iostream>
, 查看 compilation unit概念。
关于c++ - 如何制作包含 "Private"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14333239/