Modernes C++ programmieren

Okt 20, 2024

lst-0007-godb.cpp

//#(compile) c++; compiler:g141; options:-O1 -std=c++23; libs:-
// https://godbolt.org/z/WYqYe7PoY
#include <iostream>
using std::cout; using std::ostream;
class Base {
    public: int data = 5;
};
class Middle : private Base {
protected: void print() {
        cout << data;   // 'data' is inherited privately here
    }
};
class Ultimately : public Middle {
    public: void go() {
        // 'data' is not visible
        print();        // 'print' is protected visible
    }
};
int main() {
    Ultimately u {};
    u.go();             // output: 5
}