自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++类【终章】

有事没事都别用私有继承,有病。一般用包含。建立has-a关系。尽量不要用多重继承,要用的话,多使用类名进行限定进行调用,减少二义性的出错。

2025-05-11 19:37:51 1014

原创 c++类【高潮】

如果,在派生类中要重新定义,在基类中,该方法要定义为虚函数。构造函数不能定义为虚函数,因为不可继承。析构函数一般要定义为虚函数。友元函数不能是虚函数,因为友元函数不是类的成员函数。如果重新定义了继承的方法,要确保与原型完全相同(指特征标),返回类型需要根据新的类进行修改,保持与新类一致。如果基类的方法有重载,在派生类中,要重新定义所有的基类重载版本,否则,派生类只能调用重新定义的几个版本,其它基类的版本将被隐藏,派生类不能用没有重新定义的版本。自动创建的函数,表明很重要默认构造函数。

2025-05-10 18:58:03 844

原创 c++类【发展】

类的静态成员(用static声明的成员),在声明之外用例单独的语句进行初始化,初始化时,不再需要用static进行限定。在方法文件中初始化。以防重复。

2025-05-06 23:30:15 1026

原创 c++类【开端】

访问类的成员,唯一方法就是通过使用类的方法,但是友元避开了这个限制,解决了一些不能用的场景。运算符重载,运算符函数可以是成员函数,也可以是友元函数,但是一般建议定义成友元函数,可以避开第一个操作数必须是类对象的限制。转换函数,就是将类转换为其它类型,一般要自定义。还有就是将其它类型转换为类,这个一般可以通过只有一个参数的构造函数自动转换,通过要构造函数前加explicit可以限制自动转换,只能显性调用转换,减少出错。

2025-05-05 22:48:39 433

原创 【C++类】序幕

私有部分-private:类,做为一个中间商,就会有秘密,就是作为一个中介的生存根本,就是不能给大家知道的,知道了他们就活不下去了,很容易被客户踢掉,客户自己干了。所以,这部分内容就要设置为私有的。一般是存储信息。公开部分-public:作为中间商,它要和客户、上游生产商打交道,所以,肯定有一些东西要公开,比如,对客户,它要公开它有啥新产品可以卖给客户的。让大家知道它能干啥,大家才知道去找他。一般是方法(函数),访问存储信息或操作信息。类默认是私有的,不需要特别说明。

2025-05-05 17:01:02 793

原创 c++存储持续性和链接性

关于名称的存储,要打开思维,不要局限在变量这一个名称里,名称包括很多,变量,常量,函数,类的定义等。有名称的都在考虑范围里。这是我自己在读这章的时候思维调整不过来的地方,潜意识里总是不能联想到变量,或者只想到变量,没有想到函数,类这些。导致思考问题时容易出错,思维混乱。关于变量,我们关心的就是,多个文件时,这个文件里的变量,那个文件里能不能用。有时我们希望另一个文件能用它,有时候我们希望另一个文件不能用它。要解决这个关心,熟悉名称的链接性就可以了,外部链接性的,在别一个文件就可以用。

2025-05-05 11:16:26 954

原创 C++函数总结

c++函数总结

2025-05-04 17:00:21 631

原创 如何理解内存泄漏

为啥不能使用:因为,当使用这块动态内存的指针使用这块后内存后,没有释放这块内存,它就被程序认为一直占用。而写程序的又没忘了这个指针了,就在程序存在期间一起存在,或者函数执行完自动消除了这个指针变量。重启来过,重启就释放了全部内存重新来过,所以问题也就得到解决了,所以,江湖传言,重启解决90%以上的问题,大多如此。内存泄漏了,就说明相对这个程序而言,泄漏的这些内存,这个程序自己不能再用的。所以就认为是泄漏了。为啥这处程序不能使用这些内存了呢,因为这个程序认为,这些内存一直被占用着,不能使用。

2025-05-02 12:10:56 223

原创 关于常量指针和指向常量的指针

指针常量和指向常量的指针

2025-04-28 23:10:13 169

原创 关于指针和指针算术

数组和指针

2025-04-27 23:31:06 352

原创 谈谈关于【枚举】类型变量的好处

按书上写的定义,上限:找上限,先找到定义枚举量的最大值A,再找到大于这个最大值A的最小的2的幂B(这句是不是很绕口?),再将B减去1得到C,C就是枚举量的取值上限。下限:找下限,先找到枚举量的最小值a,如果>=0,下限就是0。否则,和取上限的方式 一样,等到C值后,取反(加个负号)。既然这么复杂,只是为了一个常量。为什么不直接用const定义就好了,还方便理解?1. 提高代码可读性(语义清晰)枚举允许用有意义的符号名称代替 “魔法数字”(magic numbers),使代码更易理解。

2025-04-26 21:40:05 779

原创 自动驾驶第一性原理

自动驾驶第一性原理最终可归结为:在经典理物理约束下,通过信息熵最小化(消除不确定性)实现路径最优化。所有的技术路径演进(深度学习,v2x,高精地图),本质上都是为了更逼近这个理想状态。

2025-04-14 23:04:55 670

原创 基于模型预测控制算法(MPC)用到的求解器对比(osqp/hpimp)

从学习的角度看,先学习用osqp求解器,有精力再学习phimp求解器使用。

2024-12-16 09:45:46 1726 2

原创 拉普拉斯变换/傅立叶变换/欧拉公式/泰勒级数的关联

要看懂拉普拉斯变换,要先知道傅立叶变换,要看懂傅立叶变换,要先知道复指数函数,要看懂复指数函数,就先知道欧拉公式。要看懂欧拉公式,就要先知道泰勒级数。

2024-11-25 16:15:42 1030

原创 矩阵/矩阵乘法/特征值/特征向量的讲解

线性代数里有很多的概念,很多概念是有几何意义的,了解了几何意义可能会更好的理解各种概念及其相互之间的关系。

2024-11-23 22:57:52 2426

原创 git常用命令整理

这个文章写的很实用,直接从第二点开始看。合适第一次接触的看,查阅的话,不太方便。整理一下,高频常用的命令,对于一些不常用git但是又偶尔用一下时,提高使用效率。

2024-11-21 10:54:35 1152

原创 自动驾驶控制原理2

在原理1中,这个推导,前前后后复习了好多遍,主要是要自己推出来,不是死记硬背能解决的,必须理解。所以前前后后搞了好多天。最后得到了两个函数,一个是代价函数,一个是约束方程(即:运动满足动力学方程)。得到A和B,给定Q,R(这两个其实是表示err,u这两部分各自的权重),用lqr算法就可以得到合适的u(方向盘转角),可以说就算完成了,至于算出来的结果是否最佳,就要调式合适的Q,R了。这篇主要记录lqr算法具体是怎么算的。

2024-11-10 23:24:41 360

原创 自动驾驶控制原理1

写这个吧,主要是检查下自己掌握到什么程度,并且用来快速复习关键知识点。基于这一系列教程总结的,结合自己的理解,编排了先后顺序,个人认为符合初始认知些。自动驾驶控制模块的目的就是执行规划给的轨迹,把车移动到规划期望的位置去。但是车不能原地横向移动(正常情况下,不考虑非正常情况),所以,只能通过转动方向盘,借助速度变化来实现横向移动。所以,这就引出一个问题,如何通过方向盘及速度来实现横向移动,移动到目标位置去。所以,存在一个如下的函数关系:那如何能找到这样一个函数f呢?

2024-10-28 22:07:44 951

原创 参数param及action创建

同样,这篇文章只适合有完成走过一遍例子,用来助记关键知识点用。没有详细的操作,详细代码的相关博文太多了,不缺我再写一篇垃圾。

2024-10-23 23:08:42 1066

原创 ros2创建节点及服务主要步骤总结(c++/linux)

这里写的不适合从0开始一步步学习ros2的朋友,适合那些了解过一遍,不是很熟悉,需要一点提示,以及查漏补缺的朋友,适合复习和快速回忆的情况。写的有点乱,尽量按先后顺序记录各个知识点。

2024-10-10 23:05:53 1172 1

原创 Lambda函数

](输入变量){执行语句;return ……};// [ ]里可以写变量名,&变量名,意义也是输入的变量,只是这个输入是作用域里的变量,不是函数调用传入的。

2024-09-28 23:12:51 263

原创 ostream/cout/cin

1、设置以不同进制显示数字(8进制:oct;10进制:dec;16进制:hex)。进制通过控制符设置,控制符不是类的成员函数(可能是友元函数,不知道,反正是可以设置显示格式,控制符是一个函数)。所以,不能通过类调用方法的形式。但是是个函数,就通过函数的方法调用:比如十进制:dec(cout)。把cout当参数传入。就可以修改cout的输出进制表达了。2、调整字宽(字宽这个名字都不好理解 ,感觉很抽象,中文很少提字宽吧。字宽就是指要输出的这一批字符占多少列)。成员函数:width()。

2024-09-28 21:31:02 998

原创 vectory/array/valarray(STL)

学习STL时,就会遇到上述3个关于“数组”的模板。C++提供了3个这样创建数组的方法,是3个不同团队开发的,不同的目的,所以就有了3个。

2024-09-28 15:21:42 223

原创 cmake主要语句用法(temp)

这个看前面几段可以帮助熟悉。写的有点多,后面感觉不是很实用。我这个就写的比较乱了,主要是自己理解的也不是很透彻,了解啥先写点啥,后面了解多了,再完善。看了这些,基本能看懂cmakelist.txt文档了。编译报错基本也能知道啥原因吧。

2024-09-27 16:27:41 753

原创 智能指针总结

智能指针核心

2024-09-26 21:04:20 331

原创 RTTI及类型强制转换dynamic_cast/const_cast/static_cast

RTTI:运行阶段类型识别(Runtime Type Identification)。为啥要有这个呢,主要还是因为:基类的指针允许指向派生类对象。这就导致一个问题:一个基类的指针,运行时,你不知道它指向的到底是基类对象,还是派生类对象。所以,有了运行时类型识别(RTTI)这个概念。为啥需要知道是指向基类还是派生类?因为假如要用这个指针去调用一个方法(假如叫A方法),派生类才有A方法,基类没有A方法。如果不能确定它是派生类的对象时,冒然调用这个A可能导致错误。(至于为啥要让基类的指针去指向派生类对象呢?

2024-09-25 23:34:56 706

原创 函数/函数重载/函数模板/重载的模板

函数/函数重载/函数模板/重载函数模板函数模板具体化/函数模板实例化。

2024-09-22 14:56:52 998

原创 如何理解C++中指向“函数指针的数组”的指针

c++中指向”指针的指针“的指针理解及举例应用。

2024-09-21 23:59:45 413

原创 VS Code调式C++程序配置方法总结(windows系统+linux)

VS Code调式C++程序配置方法总结,task.json,launch.json, c_cpp_properties.json3个文件的设置及含义。

2024-09-21 13:56:41 2380

原创 pyqt5安装找不到pyuic5问题及总结

pyqt5安装问题及总结

2024-01-01 10:59:52 2270

原创 Linux系统无法输入中文(fcitx架构)

按sogou输入法安装后,仍不能正常输入汉字。能输入中文的字符,比如。《 》类似这样的字符,但就是不能输入汉字。

2023-11-15 22:55:21 726 1

原创 QT+ros2打包发布方法

QT+ros2打包发布方法

2023-11-12 14:20:00 354 1

原创 qt编写ros2 GUI项目创建

{ SOURCE_DIR}#4.2和第4.3步中创建的几个变量${ UI_DIR}

2023-10-29 23:49:05 549 1

原创 自己开发的插件集成到plotjuggler一起编译的方法

自己开发的插件集成到plotjuggler一起编译

2023-10-05 16:14:28 321

原创 plotjuggler-sample-plugins使用方法

基于plotjuggler开发自己的插件,通过官方提供的示例熟悉开发方法。

2023-10-05 15:59:03 556 1

原创 Qt creator不能输入中文解决方法总结

要复制qt6文件夹下的.so文件。不是说qt5.15.2版本,就想当然的复制qt5文件夹下的.so文件。而是要复制qt6文件夹下的。因为qtcreator是基于qt6开发的。“到这里,我就把qt6目录下的so文件拷贝到上面提到的目录。打开文件,可以输入中文了。试了很多方法 ,参考各种方法,最后发现,.so文件用错了。以下是梳理的整个解决过程参考的有价值的文档。以下是自己编译fcitx-qt5方法。如是不自己编译,可以跳过。关键是复制哪个.so文件。按上以方法操作,编译出相应的.so文件。

2023-09-28 23:02:56 1212 1

空空如也

空空如也

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

TA关注的人

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