- 博客(36)
- 收藏
- 关注
原创 为什么要使用封装的思想,封装的思想相比C语言有什么优势
不能随便乱改变量,必须通过函数,防止出错。变量和功能绑在一起,一看就懂。一个类到处用,不用重复写代码。内部怎么改都不影响外部调用。
2026-09-01 22:08:09
148
原创 浅拷贝与深拷贝
现有一个 Person 类,成员变量:姓名(string name)和年龄(int age),请给 Person 添加一个拷贝构造函数,让程序能够正确运行。
2026-06-13 20:46:42
204
原创 数组类的构造函数
高耦合:类内部直接读写控制台输入,只能靠键盘输入数据,不能灵活给数组塞自定义数字。低耦合:类只负责存储数据,输入输出交给 main 主函数,类和控制台完全解绑。有参构造:类只管存储,输入交给 main → 低耦合、标准工程写法。上述的无参构造和有参构造,哪种代码耦合性更小?无参构造:类管输入 + 存储,绑死控制台 → 高耦合。耦合:代码和外部依赖绑死、难以拆分复用。现在有一个数组类,请实现它的构造函数。第一行一个整数nn,表示数组的大小。第二行nn个整数,表示数组。
2026-06-13 19:21:04
181
原创 构造函数程序
现有一个人类(Person),成员变量:姓名(string name)和年龄(int age),请给 Person 添加一个支持两个参数的构造函数,并对姓名和年龄两个成员进行初始化。通过 Person 类的showPerson()成员方法输出 Person 对象的姓名和年龄,中间使用空格隔开。创建对象 p,自动把输入的名字、年龄传进去 showPerson 输出:姓名 年龄(空格隔开)有参构造函数:Person(string n, int a);2.调用方式:Person p(name, age);
2026-06-02 22:41:45
261
原创 长方形的关系
给出两个长方形的长和宽(长不一定大于宽),实现长方形类的一个方法,判定前者是否能完全覆盖后者。输入4个整数,前两个表示第一个长方形的长和宽,后两个表示第二个长方形的长和宽。如果前者能完全覆盖后者输出"yes"否则输出"no"
2026-06-01 23:16:41
214
原创 点和圆的关系
有圆类(Circle)和点类(Pointer),请在圆类中实现一个 isPointerInCircle方法,该方法传入一个点类对象,判断点和圆的关系,并在该方法中输出。点类(Pointer):成员变量:x轴坐标(int x) y轴坐标(int y)成员方法:成员变量的公共访问方法圆类(Circle):成员变量:圆心(Point center) 半径(int radius)成员方法:成员变量的公共访问方法 判断点和圆关系的方法(isPointerInCircle)
2026-05-31 19:09:31
232
原创 采用封装的思想设计一个立方体类(Cube)
采用封装的思想设计一个立方体类(Cube),成员变量有:长(length)、宽(width)、高(height),都为 int 类型;成员方法有:获取表面积的方法(getArea)、获取体积的方法(getVolume)。
2026-05-31 12:04:50
253
原创 【无标题】
• CMake 的核心是 “帮你生成编译规则脚本”,它不碰代码编译,只告诉编译器 “该怎么编译”。• 编译器(如 g++/clang/MSVC)的核心是 “把代码翻译成可执行程序”;cout-链接到数据流,输出到控制台;
2026-05-30 17:19:36
218
原创 C++编程十大坏习惯
一旦全局变量变多了,程序维护成本变高,所以尽量避免全局变量;在函数体里, 代码的函数尽量控制在100行以内;2.变量命名中英文不规范,大小驼峰不规范;8.命名空间污染----容易产生命名冲突;6.包含未使用的头文件;3.变量声明处未使用;4.类成员数据未初始化。
2026-05-26 22:07:33
22
原创 C++操作符重载
vector<A> 是返回值A:: 是属于类operator+ 是函数名(加号)(A param) 是参数合起来就是:给 A 类重载加号 +!
2026-04-20 21:51:58
163
原创 1.C++类的使用;2.C++类的构造与析构函数;
1.C++类的使用;类要独立占用一个文件,在本操作中未作此分组;class自动创建以本文件名demo_test为名的类,类名会和文件名一致;或者写成Cdemo_test也行;要修改类型,那对应的构造函数以及拆构函数的名字都要改;声明类:要有class关键字,2.C++类的构造与析构函数;可以在类里面添加自己的功能方法以及使用方法,或者类的私有变量,公有变量;1. 构造函数(Constructor)理解:对象出生时调用,用来初始化 名字 和类名一模一样 没有返回值(连 void 都不用
2026-04-16 14:02:25
183
原创 C++递归算法使用;C++指针的使用;
变量声明时就分配内存,就有地址变量名 = 内存地址的别名a→ 取内存里的值&a→ 取内存的地址引用&b不开辟内存,只是别名,和原变量地址完全相同int *p;p = 0;p 本身有分配内存!p 指向的目标变量,没有分配内存!1. int *p;做了什么?这是定义一个指针变量 p系统会在栈上给 p 分配 4/8 字节内存(32 位 / 64 位)p 本身有地址:&p 存在所以:✅ p 这个变量本身 → 有内存2. p = 0;做了什么?
2026-04-15 14:21:02
41
原创 C++的goto语句;C++变量引用&的使用;
/b引用了a,b是a的引用。有 &:传的是变量本身,函数内能改外面 没 &:传的是副本,函数内改了不影响外面。引用:有一个引用变量名,一个引用类型,对另外一个已经赋值的变量的引用;引用类型 引用符 引用名称。2.C++变量引用,引用符&的使用。1.C++的goto语句。
2026-04-11 11:14:29
32
原创 Linux编程之获取控制台输入的3种方式getchar(),getline(),cin
一句话: 把 C++ 的 string 字符串 → 转换成 C 语言 printf 能看懂的字符串。2.printf("%s") 只认识 *C 语言老式字符串(char)**getchar() 只拿一个字符,回车丢在原地 → 必须手动吃掉。getline / cin 会自己处理回车 → 不用管。1.string 是 C++ 专属类型,问题 2:c_str() 是什么意思?
2026-03-25 14:39:59
39
原创 C++支持函数重载什么意思?引用类型是什么意思?
返回值可以相同也可以不同,但是不能只改返回值,只改返回值的操作不叫重载;引用 = 变量的别名 / 外号,不是新变量,和原变量共用同一块内存。同一个函数名,写多个不同版本,根据传进去的参数自动选对应版本调用。参数的类型不同(包括引用)可以构成重载!必须初始化(不能只写 int& b;返回值不同不算重载(不能只改返回值)不占额外内存(和原变量共用地址)1重载:同名不同参,自动选版本。2引用:变量别名,共用同内存;类里面经常用(构造函数重载)3引用做参数:不复制、能修改。一旦绑定,不能改绑别的变量。
2026-03-24 11:33:14
39
原创 类,对象;封装,继承,多态
C++ 里的对象 = 用代码模拟的现实事物,是 “属性 + 方法” 的封装体,是类的具体实例。用对象来组织代码,让程序更贴近现实、更好维护、更好扩展。对象:OOP 的核心,是数据 + 功能的打包实体类:对象的模板,对象是类的实例属性(变量)+ 方法(函数)作用:让代码更贴近现实、易维护、可复用一、封装(Encapsulation)—— 把东西包起来,保护好一句话:把属性藏起来,只留安全的接口给外面用。private:// 私有属性:外面不能直接改!int score;
2026-03-23 22:13:18
322
原创 C++类和方法定义及调用,C++非类方法编写
函数入口处,通过定义类的对象,通过类的对象调用类的方法,传入参数来调用;H文件中定义类,用class定义,定义方法,传入参数,返回值;
2026-03-17 19:06:33
34
原创 *** error 65: access violation at 0x40021000 : no ‘read‘ permission
问题点:调试状态下,程序不先进入主函数,而且不能全速运行,全速运行时会报下面错误;选择ST-link仿真器调试即可解决问题(我是连接好ST-Link仿真器的)是因为选择了软件模拟仿真;
2025-07-03 21:28:43
425
原创 Start/core_cm3.c(445): error: non-ASM statement in naked function is not supported
问题点:ARM Comolier选择错误-ARM Complier Version 中ARMCC是V5.06版本(至于为什么不用上面的ARMCLANG,好像是和内核及编译器的兼容性有关,这个我并不能确定,仅发表下观点,有懂的欢迎大家补充),但在Target中选择的是Version6,编译时就会出错;解决方法:把Target中的ARM Complier修改为V5的版本可解决。运行程序出现了这个bug,现给大家分享下我发现的问题点及解决办法;
2025-07-03 21:14:49
968
原创 keil中“*** Using Compiler ‘V5.06 update 7 (build 960)‘, folder: ‘D:\Installation\keil_arm\keil_v5\AR”
将C99勾选住,问题解决;
2023-08-15 21:46:22
16493
3
原创 CCS10中出现“Description Path Resource Location Type#141 too many arguments in function call ”问题
原因:调用函数时传入的参数数量与函数声明的参数数量不同。(上面这个函数调用是发生错误的来源)函数调用的722行改为下面这个即可解决。
2023-08-01 17:38:13
2197
原创 CCS10的程序移到CCS3.3中出现错误:error: declaration may not appear after executable statement in block
CCS10的程序移到CCS3.3中出现错误:error: declaration may not appear after executable statement in block
2023-03-01 10:20:28
458
原创 CCS3.3烧写问题the partid register may not have been read properly due to the target state
CCS3.3烧写问题the partid register may not have been read properly due to the target state
2023-02-28 16:31:53
527
原创 CCS3.3烧录data verification failed at address 0XXX,please verify… ;failure loading flash API interface
CCS3.3烧录程序时出现data verification failed at address 0XXX,Please verify target memory and memory map ;failure loading flash API interface file onto target
2023-02-27 16:44:32
2332
原创 java.lang.IllegalArgumentException: java.net.UnknownHostException: liunx01 at org.apache.hadoop.sec
首先,我也百度了,但没能解决问题后来,我对这个问题的解决办法:重点在这:Unknown Host Exception——>未知名的主机异常这个图片是我的主机名这个图片是我执行时写的主机名,错误在哪儿,一目了然希望对大家有用,手残导致的错误,引以为鉴...
2018-04-10 14:22:08
2685
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅