Alias ​​publik untuk tipe non-publik


12

Saya ingin tahu apakah itu valid 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 ?

1
Mengapa kode ini tidak valid?
NathanOliver

Jawaban:


14

Jenis tidak umum atau pribadi. Kontrol akses hanya berlaku untuk nama . Karena PublicInneradalah nama publik yang merujuk ke PrivateInnerkelas, itu dapat digunakan di luar Testkelas.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.