A quick test reveals this:
Code:
#include <iostream>
using namespace std;
class A
{
public:
virtual void Test() { cout << "A::Test()" << endl; }
};
class B : public A
{
public:
void Test()
{
super::Test();
// This would be the normal way to do this:
A::Test();
cout << "B::Test()" << endl;
}
};
int main()
{
A* p = new B();
p->Test();
delete p;
return 0;
}
Code:
$ g++ -o blah blah.cpp
blah.cpp: In member function `virtual void B::Test()':
blah.cpp:16: error: `super' undeclared (first use this function)
blah.cpp:16: error: (Each undeclared identifier is reported only once for each
function it appears in.)
blah.cpp:16: error: parse error before `;' token
So, the answer is no the GNU compiler doesn't support that. It is likely a MS only keyword. Comment out that line, and you get this:
Code:
$ g++ -o blah blah.cpp
$ ./blah
$ ./blah
A::Test()
B::Test()