In this thread I have proved that
PHP Code:
class A
{
public:
static void func(){std::cout<<"A\n";}
};
class B:public A
{
public:
virtual void func(){A::func();}
};
class C:public B
{
public:
virtual void funx(){func();}
};
class D:public C
{
public:
virtual void func(){std::cout<<"CC\n";}
void Call(){funx();}
};
int _tmain(int argc, _TCHAR* argv[])
{
D b;
b.Call();
return 0;
}
the D::func is not polymophically called in the client code and in C++ I can eliminate "virtual" key, as it is indifferent, but in managed C++
PHP Code:
ref class A
{
public:
static void func(){Console::WriteLine("A");}
};
ref class B:public A
{
public:
virtual void func(){A::func();}
};
ref class C:public B
{
public:
virtual void funx(){func();}
};
ref class D:public C
{
public:
virtual void func() override {Console::WriteLine("CC");}
void Call(){funx();}
};
I can't eliminate the virtual key in the D class. I wonder is this D::func polymorphically created once called ? Thank you