Are there any way to make implementation for abstact class which is multipely inheriting from other abstract classes in c++? : I have two 'interface' classes : AbstractAccess and AbstractPrint, and AbstractRun class inheriting from them and using their methods.
Also I have two implementation of interfaces: Accessor for AbstractAccess and Print for Abstract Print

    #include <iostream>                                                                                                                                                                                                
                                                                                                                                                                                                                   
    using namespace std;                                                                                                                                                                                               
                                                                                                                                                                                                                   
    class AbstractAccess {                                                                                                                                                                                             
        public:                                                                                                                                                                                                        
        virtual string access (void) = 0;                                                                                                                                                                              
    };                                                                                                                                                                                                                 
                                                                                                                                                                                                                       
    class AbstractPrint {                                                                                                                                                                                              
        public:                                                                                                                                                                                                        
        virtual void print (string) = 0;                                                                                                                                                                               
    };                                                                                                                                                                                                                 
                                                                                                                                                                                                                       
    class AbstractRun : virtual public AbstractAccess, virtual public AbstractPrint {                                                                                                                                  
        public:                                                                                                                                                                                                        
            void run (void) {                                                                                                                                                                                          
                print(access());                                                                                                                                                                                       
            }                                                                                                                                                                                                          
    };                                                                                                                                                                                                                 
                                                                                                                                                                                                                       
    class Accessor : virtual public AbstractAccess {                                                                                                                                                                   
        public:                                                                                                                                                                                                        
            string access (void){                                                                                                                                                                                      
                return name;                                                                                                                                                                                           
            }                                                                                                                                                                                                          
                                                                                                                                                                                                                       
                void setName(string name) {                                                                                                                                                                                
                this->name = name;                                                                                                                                                                                     
            }                                                                                                                                                                                                          
                                                                                                                                                                                                                   
        private:                                                                                                                                                                                                       
            string name;                                                                                                                                                                                               
    };                                                                                                                                                                                                                 
                                                                                                                                                                                                                       
    class Print: public virtual AbstractPrint {                                                                                                                                                                        
        public:                                                                                                                                                                                                        
            void print (string s) {                                                                                                                                                                                    
                cout << s << endl;                                                                                                                                                                                     
            }                                                                                                                                                                                                          
    };                                                                                                                                                                                                                 


Are there any ways to cast interfaces in AbstractRun to their implementations or to create implementation class Run that will only use AbstractRun's 'run' method but with implemented interfaces?
