নন-পাবলিক টাইপের জন্য সর্বজনীন উপন্যাস


12

আমি অবাক হই যে এটি বৈধ সি ++ কিনা:

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
কোডটি বৈধ হবে না কেন?
নাথান অলিভার

উত্তর:


14

প্রকারগুলি সর্বজনীন বা ব্যক্তিগত নয়। অ্যাক্সেস নিয়ন্ত্রণ শুধুমাত্র নামের ক্ষেত্রে প্রযোজ্য । যেহেতু PublicInnerএকটি সর্বজনীন নাম যা PrivateInnerশ্রেণিকে বোঝায় তাই এটি শ্রেণীর বাইরে ব্যবহার করা যেতে পারে Test

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.