继承:面试官问“移动机器人和差速机器人怎么设计类”,我这样答 上篇聊了拷贝构造和赋值的坑,今天进入面向对象的第二个特性——继承。继承在面试里出现的频率很高,但很多人对它的理解停留在"子类继承父类的属性和方法"这个层面。面试官如果追问"继承的底层怎么实现的""菱形继承怎么解决",很多人就答不上来了。讲个面试场景。面试官说:"假设你要设计一个机器人系统,有移动机器人、差速机器人、全向机器人,你怎么用继承来组织类?"大部分人会这样答:class MobileRobot { }; class DiffDriveRobot : public MobileRobot { }; class OmniDriveRobot : public MobileRobot { };方向是对的,但面试官想听到的不只是这个。他想知道你对继承的理解有多深——构造析构的顺序、虚函数的使用、菱形继承的问题。今天把继承掰开了讲清楚。继承的基本语法C++的继承用冒号语法:class MobileRobot { protected: double x_, y_; // 位置 double heading_; // 朝向 double max_speed_; // 最大速度 public: MobileRobot(double x, double y, double heading) : x_(x), y_(y), heading_(heading), max_speed_(1.0) {} void moveTo(double x, double y)