Быстрое примечание: если вы хотите сделать выбор на основе частичной строки, содержащейся в индексе, попробуйте следующее:
df['stridx']=df.index
df[df['stridx'].str.contains("Hello|Britain")]
TTBOMK у этого нет реальной технической причины, просто Stroustrup при создании языка считал это лучшим дефолтом. (В этом он аналогичен правилу, что rvalues не подразумевает привязку к ссылкам не const
.)
Вы можете легко обойти это, чтобы явное использование версий базового класса в области производного класса:
class base {
public:
void f(int);
void g(int);
};
class derived : public base {
public:
using base::f;
void f(float);
void g(float); // hides base::g
};
или путем прямого вызова:
derived d;
d.base::g(42); // explicitly call base class version
Доступны функции, вам просто нужно их явно вызвать:
struct A {
void f(){}
};
struct B : public A {
void f() {}
};
int main() {
B b;
b.f(); // call derived function
b.A::f(); // call base function
}