我想知道它是否是有效的 C++:
class Test {
struct PrivateInner {
PrivateInner(std::string const &str) {
std::cout << str << "\n";
}
};
public:
using PublicInner = PrivateInner;
};
//Test::PrivateInner priv("Hello world"); // Ok, private so we can't use that
Test::PublicInner publ("Hello World"); // ?, by using public alias we can access private type, is it ok ?
最佳答案
类型既不是公共(public)的也不是私有(private)的。访问控制仅适用于名称。由于 PublicInner
是引用 PrivateInner
类的公共(public)名称,因此可以在 Test
类之外使用它。
关于c++ - 非公共(public)类型的公共(public)别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58999218/