- 博客(15)
- 收藏
- 关注
原创 模板template
/ 3、只有一个,类型转换一下也能用,也可以匹配调用(口味不对,将就一下也行)在我们写C语言的时候如果要进行交换运算,对于不同类型的数字要写对应不同的函数。但对于C++来说,多了模板后就可以只用写一个函数,而剩下的由编译器自己判断。// 1、都有的情况,优先匹配普通函数+参数类型匹配(成品+口味对)// 2、没有普通函数,优先函数模版+参数类型匹配(半成品+口味对)可以再也不需要用#define int Typedata。而编译器根据不同传参类型会调用不同的函数。对于不同类型的参数可以自己选择了。
2024-05-11 19:49:13
141
2
原创 C++ -匿名对象,new,delete
-------------------------------------------------------本篇结束。并且对于new和delete在你使用错误或者内存超限的时候会给你报详细的错误信息,而C中的函数仅仅只是一串错误码。p3 创建10个int型的空间前三个空间赋予1,3,4后面7个空间赋予0。而free仅仅是销毁类的空间,对于类中指向堆空间的指针并不会进行销毁,对于他的用法如下--------------------new。对于C++来说他有了新的关于内存管理的函数。
2024-04-24 09:08:27
272
原创 初始化列表、类的隐式类型转换
之前我们说过在创建一个类的时候,在构造的过程时候,编译器对于我们自定义构造的类型会调用他的构造函数,但是当自定义构造类型的构造函数没有的话,就无法调用。而对于我们之前讲的类成员给予缺省值,其实就是将缺省值传给初始化列表以此来进行定义.这个时候初始化列表就可以很好的解决这个问题。先进行声明然后再通过初始列表进行定义。初始化列表的具体是什么意思呢?我们甚至可以在private中。先: 然后,后面加大括号。而初始化列表就是定义。
2024-04-22 16:38:49
129
1
原创 拷贝构造函数
也就是说对于一个值传递,相当于创建一个临时变量d然后和创建变量d3给其赋予d2的值一样,创建的临时变量d也要给其赋值d2一旦进行拷贝,又要调用拷贝构造函数,然后以此进行递归,导致死循环。而对于编译器自己生成的拷贝构造函数只会进行字节拷贝也就是浅拷贝导致两个变量中的指针指向同一块的空间,可能导致修改其中一个类中的内容,导致另一个类中的内容也相应修改。
2024-04-21 13:38:30
152
1
原创 C++类与对象(一)-this指针、构造函数、析构函数
类与C语言中的结构体较为相似,但是更为方便这里借鉴了:【C++】类与结构体的区别_c++结构体和类的区别-CSDN博客此外在类与对象中多加了几个关键字例如private可以避免随意的修改类中的变量此外对于类的内存计算和结构体差不多,对于类中的函数大小不需要加上去,只需要计算类中成员的大小,具体计算方法参考结构体的计算方法内存对齐对于空的类它的内存大小是1个字节。
2024-04-19 10:16:42
254
1
原创 C++入门-命名空间、函数重载、内联函数、引用
就相当于a+b替换掉Sum(2,3)这个的好处是减少调用函数的时间,但是只能适用于简短的函数,不然多次调用过长的函数会增加的代码量,在VS中对于长代码甚至直接就不替换,直接就调用函数。而当我们需要使用的时候可以将这个作用域展开,使其成为全局域的一部分,也可以只对其中一个函数进行展开,当我们想使用rand这个名字时候,发现标准库中已经用过了,那我们如果想用,就得创建一个私有的命名空间。在C中我们总因为指针苦恼,但是在C++中引用很好的解决了这个问题。std的命名空间,相当于创造了一个私有的作用域。
2024-04-16 22:24:00
304
原创 认识结构体
此时的struct STU 就可以当成自己创造的int 来定义一个叫xiaoming,xiaohong,xiaozhang的变量如果我们要对其赋值可以如下结构的特殊声明tag进行了匿名,如果出现了两个匿名声明编译器会把上⾯的两个声明当成完全不同的两个类型,所以是⾮法的。匿名的结构体类型,如果没有对结构体类型重命名的话,基本上只能使⽤⼀次。
2024-01-15 18:27:01
1056
原创 数据在内存中的存储(整数、浮点数)
根据国际标准IEEE(电⽓和电⼦⼯程协会) 754,任意⼀个⼆进制浮点数V可以表⽰成下⾯的形式:• (−1)^S 表⽰符号位当S=0,V为正数;当S=1,V为负数• M 表⽰有效数字,M是⼤于等于1,⼩于2的• 2^E 表⽰指数位 举例来说: ⼗进制的5.0,写成⼆进制是 101.0 ,相当于 1.01×2^2。那么,按照上⾯V的格式,可以得出S=0,M=1.01,E=2。⼗进制的-5.0,写成⼆进制是 -101.0 ,相当于 -1.01×2^2。那么,S=1,M=1.01,E=2。
2024-01-15 17:31:53
1089
原创 字符函数和字符串函数
• strtok函数找到str中的下⼀个标记,并将其⽤ \0 结尾,返回⼀个指向这个标记的指针。2如果source 指向的字符串的⻓度⼩于num的时候,只会将字符串中到 \0 前的内容追加到destination指向的字符串末尾。字符串以 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前⾯出现的字符个数(不包 含 '\0' )。如1若传入的参数是'C'那么返回的值是'c',若是要模拟是实验那就将传入的字符加减32。◦ 第⼀个字符串⼩于第⼆个字符串,则返回⼩于0的数字。
2023-12-03 20:52:21
353
1
原创 指针的理解(小白角度)
32位机器假设有32根地址总线,每根地址线出来的电信号转换成数字信号后 是1或者0,那我们把32根地址线产⽣的2进制序列当做⼀个地址,那么⼀个地址就是32个bit位,需要4 个字节才能存储。同理64位机器,假设有64根地址线,⼀个地址就是64个⼆进制位组成的⼆进制序列,存储起来就需要8个字节的空间,指针变量的大小就是8个字节。0x0012ff40就是a的地址如果我们想把地址取出,可以使用&取地址符号即&a,而地址指向的就是a的值即10。可以 *(*p2)------(*p2)取出的是p1的值即a的地址。
2023-11-26 21:12:13
760
1
原创 循环与选择for,while,switch,if
PS :如果只执行case 1: 需要才后面加入break;表达式1中可以直接定义变量int i = 0;若for() 语句1;没有{}包括时for只包含语句1。switch(整数,字符(ASCII),一个式子(a*b))continue结束本次循环continue下面的不再执行.第一个for执行一次(i=0)第二个for全部执行一遍.表达式1,2,3都可以省略但是;并且1,2,3都可以放入for里面。default:(相当于else)若要多个选择可以使用如下结构。switch的使用方法。
2023-10-23 21:43:32
30
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人