有什么办法可以在类中包含一个文件,以便它可以使用它,但不允许包含该类的任何内容进入范围以使用它?为简化起见,假设我在名为 IO 的类中有 iostream 标头,并且我使 IO 能够使用 cout 函数编写内容,但不允许包含 IO 的任何内容使用 iostream 标头中的任何内容。这不是我想做的,但我需要弄清楚这一点,所以我不会“双重定义”事物。
是的,您可以,只需将其包含cpp在h.
// IO.h
// note the lack of #include <iostream>
class IO
{
// IO stuff...
void f();
};
Run Code Online (Sandbox Code Playgroud)
然后在cpp:
// IO.cpp
#include "IO.h"
#include <iostream>
IO::void f()
{
std::cout << "Hello world!" << '\n';
}
Run Code Online (Sandbox Code Playgroud)
当您IO.h在其他文件中包含您不包含的文件时<iostream>,请查看编译单元概念。