A
asm23
Hi, I'm using Intel C++ compiler 9 to compiler a project. But, there are
a lot of warning saying like "virtual function override intended....". I
searched old messages in Google groups, someone already talk about this
issue. But I still confused..
This is the simple test code I copied from these messages
////////////////////////////////////////////////////////////////////
class Base {
virtual void foo(); //*position A*
};
class Derived1 : Base {
virtual void foo(int); //*position B*
};
class Derived2 : Derived1 {
void foo(int); //*position C*
};
////////////////////////////////////////////////////////////////////
The compiler will report two warnings:
Warning one:
warning #1125: function "Base::foo()" is hidden by "Derived1::foo" --
virtual function override intended?
Warning Two:
warning #1125: function "Base::foo()" is hidden by "Derived2::foo" --
virtual function override intended?
In my opinion, *overriding* is only occurred between two functions which
have the same signature and parameter list. It seems that the function
prototype are different between class Base and class Derived1.
I will be very appreciated if you can give me some explanation. Thank
you for reading my post.
a lot of warning saying like "virtual function override intended....". I
searched old messages in Google groups, someone already talk about this
issue. But I still confused..
This is the simple test code I copied from these messages
////////////////////////////////////////////////////////////////////
class Base {
virtual void foo(); //*position A*
};
class Derived1 : Base {
virtual void foo(int); //*position B*
};
class Derived2 : Derived1 {
void foo(int); //*position C*
};
////////////////////////////////////////////////////////////////////
The compiler will report two warnings:
Warning one:
warning #1125: function "Base::foo()" is hidden by "Derived1::foo" --
virtual function override intended?
Warning Two:
warning #1125: function "Base::foo()" is hidden by "Derived2::foo" --
virtual function override intended?
In my opinion, *overriding* is only occurred between two functions which
have the same signature and parameter list. It seems that the function
prototype are different between class Base and class Derived1.
I will be very appreciated if you can give me some explanation. Thank
you for reading my post.