Почему MSVC создает это без каких-либо ошибок или предупреждений?Что-то двусмысленное в этом коде?Компилятор GCC возвращает ошибку, потому что функция f
является закрытой.
#include <stdio.h>
class A {
private:
bool f(void) {return true;};
};
class B : public A {
};
class C : public B {
public:
using A::f;
};
int main() {
C c;
if (c.f()) {
printf("Access to private function\n");
}
return 0;
}
Для примера посмотрите здесь: https://godbolt.org/z/I5mUSa