There was a question posted about inheritance and mixing interface classes:
Multiple inheritance of interfaces in C++
Which led me to this question: Does the order of inheritance influence function resolution rules?
Given:
struct Binary_Stream_Read_Intf
{
virtual void load_from_buffer(uint8_t*& buffer_ptr) = 0;
};
struct Binary_Stream_Write_Intf
{
virtual void store_to_buffer(uint8_t*& buffer_ptr) const = 0;
};
struct Binary_Stream_Read_Write_Intf
: public Binary_Stream_Read_Intf,
public Binary_Stream_Write_Intf
{ ; };
struct Binary_Stream_Write_Read_Intf
: public Binary_Stream_Write_Intf,
public Binary_Stream_Read_Intf
{ ; };
Here are my questions:
- Are
Binary_Stream_Read_Write_Intf
andBinary_Stream_Write_Read_Intf
the same? - Can one be substitued for the other in function calls?
- Can they both be used for a function requiring a
Binary_Stream_Read_Intf
?