- 博客(66)
- 收藏
- 关注
原创 C++:静态成员
静态成员变量要在类外初始化 去掉static关键字+类型+类名::+变量名。静态成员函数不允许使用非静态成员 静态成员函数没有this指针。静态成员可以不通过对象直接访问 类名::+成员名。静态成员变量不属于任何对象 所有对象共享一份。静态成员涉及到的关键字尾static。静态成员依旧受访问修饰符的约束。
2024-10-04 19:53:48 93
原创 C++:const成员
const修饰成员函数,要放在函数后,称为常函数。常函数不能修改普通成员变量。const修饰的对象,称为常对象。常对象不能修改普通成员变量,只能读取。const修饰成员变量,要在初始化列表中进行初始化。常对象只能使用常函数。
2024-10-04 19:43:01 229
原创 C++:this指针
所有的非静态成员函数都有一个隐藏的参数(本类类型的指针,即this指针)this是c++中的一个关键字也是一个const指针。当对象调用成员函数时 会将对象的地址传递进去。成员变量是独立的 每个对象都有自己的一份。空类可以定义对象,对象大小为一字节。this指针只能在非静态成员函数中使用。成员函数是公共的 所有对象共享一份。this指针不能修改。
2024-10-04 19:32:58 56
原创 C++:malloc与new的区别
malloc与new都可以用来申请空间,除了使用方式外,本帖子将说明他们的一些其他区别。以上这些只是两者间的部分区别,感兴趣的可以去查找二者更为具体的区别。malloc不执行构造函数,free也不执行析构函数。new会执行构造函数,delete也会执行析构函数。malloc释放时用free。new释放时用delete。malloc不能直接赋值。malloc是函数。new可以直接赋值。
2024-09-17 21:41:17 208
原创 C++:析构函数
在销毁对象时,系统也会自动调用一个函数,它就是析构函数。析构函数没有返回值,它的函数名是在类名前加一个 ~ 符号。析构函数没有参数,不能被重载,这也就意味着析构函数只有一个,若没有写虚构函数,则会由一个默认的析构函数。
2024-09-17 21:18:54 279
原创 C++:初始化列表
构造函数在上一篇帖子我们提到了对成员变量初始化的功能,出了在构造函数的函数体中队成员变量一个一个赋值以外,我们还可以采用初始化列表。初始化列表的初始化顺序是按照成员变量的声明顺序。它在构造函数前执行。
2024-09-17 21:07:28 272
原创 C++:构造函数
构造函数也和普通成员函数一样可以重载,创建对象时会根据传递的实参来判断调用哪一个构造函数,若有多个构造函数,那么创建对象时提供的实参必须和其中的一个构造函数相匹配,也就意味着,闯进对象时,只有一个构造函数会被调用。C++中有一种特殊的函数,它叫构造函数,它没有返回值,函数名与类名相同,当创建对象时会自动调用它。它可以在创建对象的同时为其赋值。当类中没有写构造函数时,会存在一个默认的构造函数,它没有参数,函数体中无内容,若写了构造函数,默认构造函数就不存在了。
2024-09-16 20:19:33 612
原创 C++:面向对象三大特征之封装
还记得上一篇帖子我们所说的访问修饰符吗,在访问修饰符中有一个private,它的作用在于更好的隐藏类的内部实现。所谓封装就是类中成员私有,他人需要按我给定的方式去使用。
2024-09-05 18:31:53 402
原创 C++:类和对象
你应该有注意到public(公共的)吧,它是访问修饰符的一个,除此之外还有protected(受保护的),private(私有的)。他们是用来控制成员变量和成员函数的访问权限的,即你能否使用该类中的成员。而类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量,创建对象的过程叫做类的实例化,即对象是一个类的实例。类不占用内存空间,而对象是一个实例,因此对象占用内存空间。当我们没有规定访问权限时,类的默认访问修饰符时private,而结构体的默认访问修饰符时public。
2024-09-05 18:18:23 268
原创 C++:引用
引用可以代替地址传参,而且在C++中常用引用而不是地址传参。引用的格式为:类型标识符+&+引用名=目标变量名。引用没有空间,没有指针,没有多级引用。引用就是某一变量的一个别名。
2024-08-30 21:12:48 831
原创 C++:new
还记得之前帖子中提到的malloc吗,new和malloc都可以申请和释放空间。new和malloc可以混用,但在C++中我们常用new。2.指针变量名=new+类型(赋予一个初始值);3.指针变量名=new+类型[内存单元个数];1.指针变量名=new+类型;释放空间需要用到delete。之后的帖子中会总结二者的区别。
2024-08-27 18:59:46 712
原创 C++:命名空间
上一篇帖子中,我们在介绍C++中的输入输出的时候,你可以看到在引入头文件后有这样一串代码。这个标准命名空间中定义了很多对象,如输入输出cin,cout。只有打开它,才能使用其中的内容。它的作用就是使用标准命名空间。
2024-08-26 16:33:48 568
原创 C++:输入输出
在C语言中我们常用printf和scanf来输出输入,而C++中的标准输入输出为cin和cout,cin和cout会自动检测表达式类型。
2024-08-22 17:45:24 278
原创 C语言:文件(写入,读取)
区分二者很简单,我们可以选定一个文件,以记事本打开,如果其中的内容你能看懂,他就是一个文本文件,相反,如果是一堆你看不懂的东西,那他就是二进制文件。w+:既能读又能写,若文件不存在则创建,若文件存在则清空。若成功打开会返回文件指针,若失败则返回NULL。w:写入,若文件不存在则创建,若文件存在则清空。r:只读取,若文件不存在,fopen调用失败。a+:既能读又能写,若文件不存在则创建。在打开和关闭文件中,进行操作文件。a:追加写入,若文件不存在则创建。r+:既能读又能写,文件必须存在。
2024-08-21 18:16:36 844
原创 C语言:枚举
枚举元素本身由系统定义了一个表示序号的数值0,1,2,3...枚举值是常量,不能在程序中用赋值语句再对它赋值。枚举:将变量值一一列举出来。
2024-08-19 15:57:22 245
原创 C语言:联合体
联合体和结构体一样也是构造类型,他的用法在很多方面也类似于结构体。它也可以用typedef来起一个别名。联合体的本质:所有成员共享一块空间。联合体大小由最大成员决定。首先我们来看他的结构;
2024-08-19 15:48:01 154
原创 C语言:栈
不同于队列的是:栈只能从表的一端存储数据,另一端封闭,所以栈遵循先进后出的原则,你可以想象为一个弹夹,弹夹下方的子弹先压入,但先射出的是弹夹上方的子弹,即后压入的子弹。栈也是用来存储逻辑关系为一对一数据的线性存储结构。
2024-08-19 11:55:32 270
原创 C语言:链表添加
若有, 尾节点的下一个指向新来的节点,尾指针指向新来的节点。若没有, 头指针指向新来的节点,尾指针指向新来的节点。先判断链表是否有节点,
2024-08-16 21:41:57 423
原创 C语言:链表
它由若干个节点组成,每个节点出来要存储需要存的信息之外,还要能找到下一个节点,即要有一个指针变量来存下一个节点的地址。链表也叫链式存储结构或单链表。节点是用结构体来作为载体的。
2024-08-16 21:34:47 314
原创 C语言:字符串函数strcpy
strncpy可规定复制字符串中的几个,而不是像strcpy那样全复制,但他同样不安全所以要用strncpy_s。用一个自定义函数来实现strcpy函数。用一个自定义函数来实现strncpy。该函数用于字符串的拷贝。
2024-08-13 22:30:51 411
原创 C语言:字符串
代码中以双引号出现的字符串存在字符常量区,双引号字符串作为表达式返回该字符串在字符常量区首元素的地址。字符串:以'\0'结尾的字符数组。
2024-08-10 21:31:58 170
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人