Почему я не могу получить доступ к функции класса A в следующем коде?

Ошибка, которую я получаю за obj.a::get(); класс А недоступен, я знаю, что 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();
}

1 ответ

Решение

c использования private извлечь из a, Итак a подобъект c недоступен из функций, которые не являются функциями-членами c,

Другие вопросы по тегам