- 博客(17)
- 收藏
- 关注
原创 学习C++的第18天——模板类
class AApublic:T1 m_a;//通用类型用于成员变量T2 m_b;AA() {} //默认构造函数是空的//通用类型用于成员函数的参数//通用类型用于成员函数的返回值T1 geta()T1 a = 2;//通用类型用于成员函数的代码中T1 getb()T1 b = 2;//通用类型用于成员函数的代码中int main()//用模板类AA创建对象aa.m_a = 20;a.m_b = 30;
2025-05-14 21:42:56
353
原创 学习C++的16/17天 派生类的补充和泛编程
运行阶段类型识别(RTTIRunTime Type ldentification)为程序在运行阶段确定对象的类型,只适用于包含虚函数的类。基类指针可以指向派生类对象,如何知道基类指针指向的是哪种派生类的对象呢?(想调用派生类中的非虚函数)。运算符使用指向基类的指针来生成派生类的指针,它不能回答“指针指向的是什么类的对象”的问题,但能回答“是否可以安全的将对象的地址赋给特定类型的指针”的问题。如果转换成功,dynamic_cast 返回对象的地址,如果失败,返回nullptr。
2025-04-16 21:55:11
764
原创 学习C++的第14\15天:转换与继承
(在C++中,将一个参数的构造函数用作自动类型转换函数,它是自动进行的,不需要显示的转换。cout << "调用了CGirl()\n";void show() { cout << "编号:" << m_bh << ",姓名:" << m_name << ",联系电话:" << m_tel << endl;cout << "c的值是多少:" << c << endl;m_bh = bh;cout << "a的值是多少:" << a << endl;
2025-04-09 20:27:33
959
原创 学习C++的第十三天:重载
void show() { cout << "姓名:" << m_name << ",胸围:" << m_xw << ",评分:" << m_score << endl;void show() { cout << "姓名:" << m_name << ",胸围:" << m_xw << ",评分:" << m_score << endl;void show() { cout << "姓名:" << m_name << ",胸围:" << m_xw << ",评分:" << m_score << endl;
2025-04-08 16:39:35
931
原创 学习C++的第十二天(面向对象编程)
对面向对象编程来说,一切都是对象,对象用类来描述。类把对象的数据和操作数据的方法作为一个整体考虑。定义类的语法:←注意:1.类的成员可以是变量,也可以是函数。2.类的成员变量也叫属性。3.类的成员函数也叫方法/行为,类的成员函数可以定义在类的外面。class CGril //超女类CGrilpublic:void show() //显示超女的自我介绍。
2025-03-25 13:15:34
932
原创 学习C++的第十一天 函数的默认参数、重载、内联
是分开的,在函数声明中书写默认参数,函数的定义中不能书写默认参数。void func(const string& message="我喜欢你!");int main()func("我是一只傻傻鸟。");func();cout << "亲爱的:" << message << endl;2.函数必须从右向左设置默认参数。也就是说,如果要为某个参数设置默认值,则必须为它右边所有的参数提供默认值。西施我喜欢你!")
2025-03-24 21:53:56
617
原创 CMake学习
在上面的例子中一共提供了5个源文件,假设这五个源文件需要反复被使用,每次都直接将它们的名字写出来确实是很麻烦,此时我们就需要定义一个变量,将文件名对应的字符串存储起来,在cmake里定义变量需要使用set。# SET 指令的语法是:# [] 中的参数为可选项, 如不需要可以不写VAR:变量名VALUE:变量值# 方式1: 各个源文件之间使用空格间隔setSRC_LIST//后面这5个文件的名字,相当于变成了字符串存到了SRC_LIST这个变量里面做了初始化。
2025-03-19 20:34:28
1152
原创 学习C++的第九天(结构体)
语法:struct 结构体名成员一的数据类型 成员一名;成员二的数据类型 成员二名;成员三的数据类型 成员三名;......成员N的数据类型 成员N名;eg://超女基本信息结构体st_girl,存放了超女全部的数据项string name = "西施";//x为女,y为男//颜值//创建结构体变量可以用它把结构体成员引出来注意:1.结构体名是标识符2.结构体的成员可以是任意数据类型。
2025-03-04 21:25:26
761
原创 学习C++的第八天(数组)
/第一个参数填数组名,第二个填0,第三个填他的大小。用memcpy()函数可以把数组中全部的元素复制到另一个相同大小的数组。//第一个参数填目标数组名,第二个参数填原数组明,第三个填整个数组占用的空间大小。用sizeof(数组名)可以得到整个数组占用内存空间的大小(只适用于C++基本数据)注意:如果{}内不足数组长度个数据,剩余数据用0补齐,但是,不建议这么用,你可能在数组中漏了某个值。数据类型 数组名[] = {值1,值2......,值n};
2025-02-12 02:11:39
475
原创 学习C++的第四天(循环)
先计算表达式的值,如果为真就执行语句块,执行完语句块之后,回到循环首部再次计算表达式的值,如果为真......,直到表达式的值为假时,不在执行语句块。1)在for循环中,表达式,语句一,语句二都可以为空,for(;//3)判断超女的颜值,如果漂亮,显示“晋级成功”,程序跳转到循环的首部。//1)显示“请输入超女的颜值(1-漂亮,0-不漂亮):”的提示文字。//4)显示“请输入超女的身材(1-火辣,0-不辣):”的提示文字。cout<<"请输入超女的颜值(1-漂亮,0-不漂亮):";
2025-02-06 01:00:06
533
原创 学习C++的第一天
/ std::cout 向控制台输出内容的指令(类似于printf吧)//“” 字符串内容的边界符。// << 输出的运算符。//在控制台输出hello world!//main函数,程序从这开始执行。
2025-02-03 14:58:44
698
原创 主函数调用子函数,且能发生值传递,需要用到指针
void LeftMove(unsigned char *p) //不就是 unsigned char *p=&LED 了。//即变量LED的值向左移一位。//此时,p存放的是变量a的地址,*p就是a的值。也可以直接 unsigned char *p=&a;指针变量(*p里的p)是存放内存地址的符号。逻辑与&& 取址符& 取值符*
2025-02-02 23:40:41
204
原创 读取一个字节(以及连续读取多个字节(存在数组里))
mask>>=1) //这里可以不加这个等号吗。if(DHT11_Read_Bit()) //这里是假设接受到0或者1。例如数据10101100。
2025-02-02 21:21:59
166
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅