polymorphic C++ references

前端 未结 7 1060
闹比i
闹比i 2020-12-09 09:07

I was wondering how you can do polymorphism with references, as opposed to pointers.

To clarify, see the following minimal example:

cl         


        
相关标签:
7条回答
  • 2020-12-09 10:05

    It's no stretch to imagine why references can work polymorphically like pointers (not to mention references are often implemented as pointers anyway). Here's a quick example:

    class Base { 
    public:
        virtual void something() { }
    };
    
    class Derived : public Base {
    public:
        void something() { }
    };
    
    Base& foo() {
        static Derived d;
        return d;
    }
    
    foo().something(); // calls Derived's something
    

    Also why are you allocating dynamic memory for a reference? You probably shouldn't be using a reference in this case at all. Also, writing classes with reference members effectively prevents assignment (as I heard someone say quite well).

    0 讨论(0)
提交回复
热议问题