I know some languages allow this. Is it possible in C++?
Yes:
#include <iostream>
class X
{
public:
void T()
{
std::cout << "1\n";
}
};
class Y: public X
{
public:
void T()
{
std::cout << "2\n";
X::T(); // Call base class.
}
};
int main()
{
Y y;
y.T();
}
class A
{
virtual void foo() {}
};
class B : public A
{
virtual void foo()
{
A::foo();
}
};
Yes, just specify the type of the base class.
For example:
#include <iostream>
struct Base
{
void func() { std::cout << "Base::func\n"; }
};
struct Derived : public Base
{
void func() { std::cout << "Derived::func\n"; Base::func(); }
};
int main()
{
Derived d;
d.func();
}