- 博客(73)
- 收藏
- 关注
原创 c++some
LNK2019: 无法解析的外部符号 "public: void __cdecl CSpPublicInterfaces::AddActMenuItem(class std::basic_string<char,struct。这里显示返回值是void类型 是有可能编译器仍然使用旧的编译缓存,没有检测更改。即使修改了函数的返回类型,编译器可能没有重新编译相关的。有个问题是为什么这里要用指针 若是直接用对象的话 SonImpl这个类没有定义只有声明会报错。好处1.可以减少头文件改动。文件 重新生成项目。
2025-03-26 18:31:41
249
原创 work日记
1.重新学习了P处理 windows脚本语言 pushd %cd%...... 改变目前 popd回到当前目前。到时候自己修改p处理更加方便 能看懂脚本里边在干什么。工具链来为 iOS 设备编译 C++ 代码,2.项目是通过 ndk-build 根据。armeabi-v7a 32位。arm64-v8a 64位。
2025-03-25 20:53:51
193
原创 C++相关
3.回顾了虚函数,定义virtual 就是虚函数 一般是父类指针指向子类对象的时候显示多态,若不是指针则是静态绑定 为函数重写 出现 virtual funtion = 0;就是纯虚函数 有一个纯虚函数的类是抽象类,它不能被实例化(因为虚函数未实现 ) 若是父类是抽象类 那么子类得把所有的纯虚函数都实现 否则这个子类也变成抽象类。shared_ptr 的父类有两个指针 一个是自己的类型指针 还有一个引用计数指针 一般都是用unique_ptr没有管理共享所有权的开销。,而不会影响其他指向同一对象的。
2025-03-24 21:00:14
305
原创 8 非静态数据成员默认初始化
1.不要使用括号()对非静态数据成员进行初始化,因为这样会造成解析问题,所以会编译错误。C++11标准提出了新的初始化方法,即在声明非静态数据成员的同时直接对其使用=或者{}2.不要用auto来声明和初始化非静态数据成员。
2024-09-30 22:15:00
246
原创 第6章 右值引用
常量左值引用可以绑定右值是一条非常棒的特性,但是它也存在一个很大的缺点——常量性。只有实际类型是一个非引用类型或者右值引用类型时,最后推导出来的才是一个右值引用。(A& & 变成 A&;对于这一点,常量左值引用的特性显得更加有趣,它除了能引用左值,还能够引用右值。但是,如果我们传递的是右值而没有使用完美转发,右值的状态会被“降级”成左值,这意味着。万能引用长的和右值引用一样 都是&& 若是有类型的推导就是万能引用 若是没有类型推导就是右值引用。所有右值引用折叠到右值引用上仍然是一个右值引用。
2024-09-22 16:00:00
642
原创 4decltype说明符
typeid返回的std::type_info删除了复制构造函数,若想保存std::type_info,只能获取其引用或者指针。虽然typeid可以获取类型信息并帮助我们判断类型之间的关系,但遗憾的是,它并不能像typeof那样在编译期就确定对象类型。typeid的返回值总是忽略类型的 cv 限定符,也就是typeid(const T)== typeid(T))。对象的引用,这就是所说的“返回值是一个左值”。由于返回的是引用,其生命周期与程序相同,因此其所引用的。这是在C++17中推出的。
2024-09-21 14:41:52
274
原创 三 auto占位符
1.当用一个auto关键字声明多个变量的时候,编译器遵从由左往右的推导规则,以最左边的表达式推断auto的具体类型int n = 5;// 这里auto被推导为 int 所以int m = 10;合理//编译失败,声明类型不统一5 : 8.0;// i的数据类型为double3.虽然C++11标准已经支持在声明成员变量时初始化(见第8章),但是auto却无法在这种情况下声明非静态成员变量auto i = 5;// 错误,无法编译通过//这个样子可以 但是i就是常量了C++17修改。
2024-09-20 23:00:00
337
原创 C++相关
其中 capacity返回的是Vector的容量 若是加入的元素后超过这个容量 那么就会扩容 ( 这扩容好像是1.5倍还是2倍) 但是扩容操作是非常费时间的 一旦内存重新分配,vector元素相关的所有reference、pointer、iterator 都会失效。Vector的容量非常重要 它与大小有关的函数有 size(),empty(),max_size() capacity(),c.assign(beg,end)将区间[beg,end)内的元素赋值给c。
2024-09-19 11:44:41
967
原创 Itme4 对象使用前进行初始化
这样是没有使用初始化列表 在调构造函数之前会对这个对象的成员进行默认的初始化,再到构造函数当中 去进行。在不同的文件中 在一个文件中使用另一个文件的局部静态变量 可能会未进行初始化。赋值, 所以这里是进行的赋值操作并不是初始化。局部静态对象的的初始化顺序。这可能是由于文件的位置不同。
2024-05-29 15:16:18
286
原创 Item 3 使用const
在一个函数声明,const 既可以用在函数的 返回值,也可以用在个别的参数,对于 成员函数,还可以用于整个函数。如char* txt=“hello";改变其hello的值 text指针的位置并未发生改变。为了防止这样的出现 (a*b) 若不是const (a * b = c)不会报错。特别的是 对于成员函数的整个const 代表 不修改该对象的任何成员变量。在函数的最后面加const 和不加const是两个函数 是重载的!定义const的函数 在no const中调用。
2024-05-28 16:55:11
250
原创 Effective C++ 不要滥用宏
对于 simple constants(简单常量),用 const objects(const 对象)或 enums(枚举)取代 #defines。宏是不可修改的 const char * Text = "hello";这只代表 "hello"不可改变 可以Text = “1111”;对于 function-like macros(类似函数的宏),用 inline functions(内联函数)取代 #defines。所以一般为 const char * const Text = "hello";
2024-05-28 15:46:12
240
原创 俄罗斯方块大概
整体逻辑 把地图作为二维数组 所有的操作都对这个二维数组进行。typedef struct block //方块的结构体。方块的坐标对应着地图的位置 在4*4的二维数组中显示出来。2.方块结构体 用来记录方块的信息。3.通用数组 方块的所有的类型。VS2022 C++控制台窗口。1. 整体是一个map数组。
2024-03-15 21:32:13
373
原创 滴水内存地址堆栈
两个十六进制数 刚好是一个字节刚好 DC这的一个字节数据为E4 一个内存地址 后面表示四个字节的数据 所以有八个十六进制的数。BASE是高地址 所以放入一个四字节后就 -4。
2024-01-13 17:20:14
412
原创 逆向7通用寄存器
MOV指令前后的容器宽度要一致 如ECX与EAX 都是32位 mov eax,0x111 可以少写后面补零多写的会移除 源操作数是后面的 目标操作数是前面的。32位和64位寻址宽度 是查找内存宽度的范围 每一个编号对应一个字节 即内存宽度。32位是4g 64位大的多。0x123456是临时数。
2024-01-10 20:41:13
831
原创 逆向数据宽度与符号
有符号与无符号是程序员定的 并不是开头是1就表示负数 0表示正数 得看有无符号。正数与负数的 刚好是半 所以 0 表示正数 1表示负数。双字 32bit 4字节。
2024-01-09 20:42:49
858
原创 OBD汽车
03 41 0D 5555 这是响应 三个有效字节 23表示回应的速度 换算为10进制为35km/h。02 01 0D 5555(随机值)这是请求 两个有效字节 01 OD(请求速度)OBD很多的定死了 Vme就很灵活 WWH 就是两个的结合。PID 可以自己定义一些 一个字节255个。诊断设备流程 ====》》》》相当于客户端与服务器。
2024-01-08 21:58:59
926
原创 滴水逆向1
十六进制的定义:由十六个符号组成,分别是0 1 2 3 4 5 6 7 8 9 A B C D E F。十进制的定义:由十个符号组成,分别是0 1 2 3 4 5 6 7 8 9 逢十进一。九进制的定义:由九个符号组成,分别是0 1 2 3 4 5 6 7 8 逢九进一。
2024-01-08 21:33:01
1001
原创 逆向P1P2总结
寻址宽度 以字节为单位 0xfffffff + 1 就是最大容量 转为十进制为 4294967296 / 1024 (k)/1024 (kb)/ 1024 (m) 4g。字节八位 word 16位 deword 32 位。为什么电脑有32位与64位之分。不建议看了太卡了 要有汇编基础。
2023-12-25 20:44:41
722
原创 数组螺旋矩阵
输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
2023-12-23 21:42:46
379
原创 滑动窗口双指针
类似窗口滑动 j代表的是窗口的结束位置 i表示开始位置。在while循环中是寻找最小数组的size。如果不存在符合条件的子数组,返回。找出该数组中满足其总和大于等于。
2023-12-20 19:49:59
396
原创 条款21 使用make_unique make_shared
一般都用make_unique make_shared。除了某些情况 了解这些情况 不用这个。
2023-12-18 16:05:16
377
原创 条款20 当share_ptr悬空用weak_ptr
weak_ptr主要是监视 问你有没有资源但是没有资源的所有权。share_ptr是有所有权 下面是循环引用的例子。
2023-12-18 15:40:32
372
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人