language: C++ 4.7.2 (gcc-4.7.2)
date: 667 days 15 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
 
struct MecEngineer {
 
     void buildRobot() { 
        std::cout << "Mechanical Engineer builds robot" << std::endl ;
     }
 
};
 
struct EleEngineer {
 
     void buildRobot() {
        std::cout << "Electrical Engineer builds robot" << std::endl ;
     }
 
};
 
struct RoboticsEngineer : MecEngineer, EleEngineer {
 
};
 
int main(){
        
        RoboticsEngineer *obj = new RoboticsEngineer() ;
        // obj->buildRobot() ; // Ambiguous call
        static_cast<MecEngineer*> (obj) -> buildRobot() ;
        static_cast<EleEngineer*> (obj) -> buildRobot() ;
        delete obj ;
        
        return 0 ;
 
}