为什么我不能在以下代码中访问A类函数?

Pra*_*mar 1 c++ inheritance

我得到的错误obj.a::get();是类a是无法访问的,我知道这obj.get()会标记错误,但我想这应该有效,这是什么问题?

class a {
    int arg1;
public:
    a(int i){
        arg1 = i;
        cout << "a() called" << endl;
    }

    void get() {
        cout << "arg1=" << arg1 << endl;
    }
};


class b {
    int arg2;
public:
    b(int j) {
        arg2 = j;
        cout << "b() called" << endl;
    }

    void get() {
        cout << "arg2=" << arg2 << endl;
    }
};

class c: private a, private b {
    int arg3;
public:
    c(int i, int j, int k): b(k), a(j) {
        arg3 = k;
        cout << "c() called" << endl;
    }
};

int main() {
    c obj(1, 2, 3);
    obj.a::get();
}
Run Code Online (Sandbox Code Playgroud)

And*_*owl 10

c用于private派生a,因此a子对象c不能从不是成员函数的函数中访问c.