非公共类型的公共别名

我想知道它是否有效的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 ?
zyfv002 回答:非公共类型的公共别名

类型既不是公共的也不是私有的。访问控制仅适用于名称。由于org.osgi.service.event.Event是引用PublicInner类的公共名称,因此可以在PrivateInner类之外使用。

本文链接:https://www.f2er.com/3049092.html

大家都在问