C++基类成员函数调用该类纯虚函数,该怎么理解?
class TrajectoryBuilder {
public:
TrajectoryBuilder() {}
virtual ~TrajectoryBuilder() {}
TrajectoryBuilder(const TrajectoryBuilder&) = delete;
TrajectoryBuilder& operator=(const TrajectoryBuilder&) = delete;
virtual const Submaps* submaps() const = 0;
virtual const PoseEstimate& pose_estimate() const = 0;
virtual void AddSensorData(const string& sensor_id,
std::unique_ptr<sensor::Data> data) = 0;
void AddRangefinderData(const string& sensor_id, common::Time time,
const Eigen::Vector3f& origin,
const sensor::PointCloud& ranges) {
AddSensorData(sensor_id,
common::make_unique<sensor::Data>(
time, sensor::Data::Rangefinder{origin, ranges}));
}
void AddImuData(const string& sensor_id, common::Time time,
const Eigen::Vector3d& linear_acceleration,
const Eigen::Vector3d& angular_velocity) {
AddSensorData(sensor_id, common::make_unique<sensor::Data>(
time, sensor::Data::Imu{linear_acceleration,
angular_velocity}));
}
void AddOdometerData(const string& sensor_id, common::Time time,
const transform::Rigid3d& odometer_pose) {
AddSensorData(sensor_id,
common::make_unique<sensor::Data>(time, odometer_pose));
}
};
代码如上所示,三个成员函数了都调用了该类的纯虚函数,这里怎么理解,望能提供参考。