Почему я не могу получить доступ к функции класса 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
,