自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 Effective C++ 多态基类声明virtual析构函数

在普通类继承里,删除子类对象会先调用子类的析构,再调用父类的析构。我们删除的是父类指针,调用的只是父类的析构函数,子类析构不会被调用,也就是说,子类对象没有被删除,而指针却没了。如果基类的析构函数是虚拟的,删除基类指针时,C++ 会确保首先调用派生类的析构函数,然后再调用基类的析构函数。这是确保对象正确销毁的关键;可以看出只会调用基类的析构函数,而子类的析构函数并没有调用,子类对象没有被删除,导致内存泄漏;当通过基类指针删除对象时,应该确保可以调用派生类的析构函数,为实现该目的,可以使用类的虚析构函数;

2024-10-29 19:40:11 184

原创 ROS 工程化电子书

本文 主要用于记录ROS学习以及工程项目中的问题记录与解决等;会持续更新!

2024-10-29 09:01:52 321

原创 C++ virtual

当一个类从多个基类继承,而这些基类又共享一个更基础的基类时,如果没有使用虚基类,那么在派生类中会存在基础基类的多个实例,这会导致成员变量的二义性和资源浪费。这意味着如果派生类中有一个同名、同参数列表的函数,那么这个函数将被视为是对基类虚函数的重写。当通过基类的指针或引用调用这个函数时,C++运行时系统会查找并调用实际对象类型中相应的函数。虚基类确保即使在多重继承的路径中,共享的基础基类也只被继承一次,从而保证了成员变量的唯一性。(动态多态):通过虚函数实现,允许在运行时根据对象的实际类型选择合适的方法。

2024-10-28 11:25:11 1836

原创 C++设计模式——单例

单例具有全局可访问的特点,当单例成功创建之后,可以在整个程序的任意位置访问该对象,这与C++编程中尽可能限定作用域确保程序安全的思想略有冲突,所以在使用单例的时候,确保单例对象是唯一的.

2024-10-28 10:04:09 179

原创 多线程编程

线程是轻量级的进程,每个线程可以独立的运行不同的指令序列,但是线程不独立的拥有资源,依赖于创建它的进程而存在。使用joinable()方法判断能否使用join或detach,该方法返回一个布尔值,如果线程可以被join()或detach(),则返回true,否则返回false。使用t.detach()分离线程,让它在后台运行(也就是主线程结束了 但是子线程让他继续运行),注意一旦线程被分离,就不能再使用`t.join()`方法等待它完成。要创建线程,我们需要一个可调用的函数或函数对象,作为线程的入口点。

2024-10-25 09:22:32 952

原创 const 关键字

如果给以“指针传递”方式的函数返回值加 const 修饰,那么函数返回值(即指针)的内容不能被修改,该返回值只能被赋给加const 修饰的同类型指针。在类中,使用const修饰成员函数,表明该函数不会修改类的任何成员变量,可变数据成员 (mutable data member) 除外。在函数的参数中使用const可以防止在函数内部修改参数值,特别是当传递指针或引用的时候;const修饰指针有常量指针和指针常量,在工程化中更为常用的是指针常量;1.防止修改指针指向的内容。2.防止修改指针指向的地址。

2024-10-24 19:44:32 332

原创 static关键字

static修饰了局部变量x,令局部变量x变成静态的,且只能初始化一次,使得每次test()函数结束时局部变量x都不销毁,再次进入test()函数时则保留原有数值运行,因此x++数值越来越大。全局变量的作用域十分的广,只要在一个源文件中定义后,这个程序中的所有源文件、对象以及函数都可以调用,生命周期更是贯穿整个程序。中,它改变了局部变量的存储位置,从而使得变量的生命周期延长,延长至程序结束才销毁。static对函数的修饰与修饰全局变量十分相似,修饰函数时会改变函数的。,从而使得函数的作用域变小。

2024-10-24 17:23:09 1001

原创 指针与智能指针

虽然unique pointer不支持拷贝不支持赋值操作,但是存在例外情况,即当源unique pointer即将被销毁的时候,它是可以被赋值的,可以利用这个特性从函数中返回unique pointer;常量指针:指针指向的是常量,其指向的内容是不可以改变的,不能通过指针来修改它指向的内容,但是指针自身不是常量,它自身的值可以改变,从而指向另一个常量(地址)指针常量:指针本身是常量,其指向的地址是不可改变的,但是地址里的内容是可以改变的,指针常量在定义的时候必须同时赋初值。持续更新中.......

2024-10-20 17:46:32 258

原创 C++ 工程化电子书

本文主要用于记录工作过程中的C++学习以及C++在自动驾驶领域中的应用,涉及工程项目编程技巧以及编程规范等;会持续更新!

2024-09-07 22:42:20 289

原创 ROS导航模块概述

通过里程计定位(odom)ROS中,是一个标准消息类型,用于表示里程计信息。包含机器人的位置、姿态以及速度信息,其在nav_msgs包中定义;#include // geometry_msgs 用于处理机器人的位姿信息// 发布类型为nav_msgs::Odometry,话题为odom,消息队列大小为50;// 10 Hz优点:连续、无跳变;缺点:存在累计误差;(路面不平、测速不准、车轮打滑等都会产生误差,长时间以及长距离会导致误差累积)

2024-08-11 11:44:45 1085

路径二次规划算法QP (2).pdf

路径二次规划算法QP (2).pdf

2025-04-01

机器人坐标变换与导航!!!

机器人坐标变换与导航!!!

2024-12-08

机器人SLAM导航核心技术和实战指南 - 加速算法和机器人产品落地

机器人SLAM导航核心技术和实战指南 - 加速算法和机器人产品落地

2024-12-08

数值优化参考书《Numerical Optimization》

数值优化参考书《Numerical Optimization》

2024-12-01

PathPlanning.pdf

PathPlanning.pdf

2024-08-26

1-convex optimization.pdf

1_convex optimization.pdf

2024-08-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除