- 博客(12)
- 收藏
- 关注
原创 C++中的继承
父类和子类有相同数据类型,相同名字的数据是符合语法的,在C++等面向对象变成语言中,父类和子类有相同数据类型和相同名字的数据成员是符合语法的。在子类的范围类,子类的成员变量会隐藏父类的成员变量。这个例子中还有些要点值得被强调,那就是如果子类中出现了和父类同名的成员函数(无论父类的成员函数有参还是无参,只要函数名一致),那么子类的成员函数就会隐藏父类的成员函数。我们发现,定义这些类的时候,下级别的成员(比如加菲猫)包含有上级别类(比如猫)的共性,还有自己的特性,这个时候我们利用继承的技术就可以减少重复代码。
2025-01-15 12:44:08
488
原创 C++运算符的重载
在C++中,我们有一些运算符,其中最最简单的就是+、-、*、/、%这几个符号,我们能理解它们的意思,对两个数进行相加,相减,相乘,取整,取余。但是我们发现这些都是对于一些我们熟悉的数据类型的数据进行处理的,如整型,浮点型数据等等。学习了类,由类我们实例化创建对象,但是我们这种用户自定义数据类型的对象是不能相加相减的。int m_B;这个类中,如果我们实例化两个对象Person p1,p2。并将他们的成员都赋值。并相加,这个加号是有误的。p1.m_A=10;
2025-01-14 12:26:32
835
原创 构造函数和析构函数的介绍
构造函数可以有两种分类方式,按照第一种分类,我们可以分为普通构造函数和拷贝构造函数,也就是除了拷贝构造其他都是普通构造,按照第二种分类,我们可以分为有参构造和无参构造。第二个很好理解,构造函数的形参列表有参数我们就认为是有参构造,没有参数我们就认为是无参构造。但是在无参构造函数,有参构造函数,拷贝构造函数中有优先级,系统的自动补充要遵循优先级。但如果我们定义了低级的构造函数,系统会自动补充高级的构造函数。::是作用域接续运算符号,通过它,我们可以实现在类外定义成员函数,但是我们需要在类内声明相应的函数。
2025-01-12 15:37:40
1083
原创 C++中类的简单介绍
这个例子中,我们实例化了一个对象,并对这个对象进行了一些基本的操作。(成员属性(也称为成员变量或实例变量)是类中的数据成员,用于存储对象的状态信息。它代表了对象的特征或属性。成员函数(也称为方法)是定义在类中的函数,用于操作对象的成员属性或者执行与该类相关的特定行为。struct的成员是public权限的(默认),而class的成员是private权限的(默认).C++给成员设置了三种权限,我们上面已经提及了public权限,除了public权限,我们还有protected权限呢,private权限。
2025-01-12 12:44:31
270
原创 C++的函数Plus
二是如果函数的声明有默认参数,函数实现就不能够有默认参数,也就是说函数的声明处和函数头的阐述列表中,只能一处有默认参数。对于func2的调用,感兴趣的读者可以区看看。正如代码注释中说的,我们不要设置占位参数的默认值,无论传入的参数是一个还是两个,都会调用到相应的函数。函数的重载是指通过一些条件让一些函数做到名字一样,但是编译器可以知道调用具体的那个函数,具体的实现参见下面代码以及注释。引用的参数形式,因为这样的匹配更符合参数传递的精确性要求,它允许函数内部通过这个引用去修改实参所对应的变量。
2025-01-12 01:04:22
260
原创 引用的知识
在这个例子中,作为实参的a传递给形参temp,这会在内存空间开辟一个int大小的空间,它的值是20,传递给function_test进行后续的计算。而在实参传递值给形参传递过程中,编译器会调用拷贝构造函数进行创建一个新的对象,这个对象的名字就是形参对应的名字。这串代码和例子1只有形参的区别,这个区别的意思是:当执行到传递的时候,对变量a起一个别名,这个别名叫temp,以后无论什么操作都是直接对变量a进行处理。我们也有引用的技术。看似简单的原理,实际上有非常nice的作用,别名所指向的对象是直接被处理的。
2025-01-11 22:59:25
178
原创 C++中在堆区中动态分配内存存储数据
在c++中,通过关键字new,malloc和calloc可以实现在内存堆区进行动态的开辟空间,从而存储数据。这些数据需要被程序员手动释放,否则会导致内存的溢出。而导致程序崩溃。
2025-01-11 17:41:02
494
原创 c++语言的内存分区知识
全局区存放着一些特定的数据,像全局变量,还有静态变量,不过需要注意,用 const 修饰的全局变量,如果其初始值在编译时就能确定,通常它会存放在代码区,只有初始值依赖运行时条件确定的 const 全局变量才放在全局区。实际上,由const修饰的int型数据在声明的时候必须要进行初始化,并且在这之后是不可被修改的(当然,我们没考虑再类里面的情况)。栈区主要用于存放函数调用过程中的局部变量,像函数内部定义的普通变量、数组以及函数参数等,这些变量在函数调用结束后,所占用的栈内存会自动释放。
2025-01-11 16:38:09
128
原创 c++的格式控制字符
如果我想用左对齐,占10个空间大小,然后只要求它的前4位的方式输出一个单精度浮点数,用%-10.4f即可达到想要的操作。实际上,这是c++语言的特性,那就是:它会默认和前面的格式保持一致。我们看到了一个有意思的现象,在我们没有控制左对齐的时候,stefill那行代码会给我们默认右对齐。但是在c++中,由于我们直接用了cout而没有对应的格式控制指令,似乎没办法对输出的格式进行控制。值得注意的是,由于被填充的对象是一个字符,所以我们需要用字符的形式给到setfill,就如例子中的setfill('0')。
2024-12-10 11:46:30
741
原创 时间复杂度的简单介绍
我们可以直观的看到,确实大致符合这样的结果。对于时间上的差别,我们当然可以理解:某些程序正在偷偷吃掉一部分运行,音乐软件可能正在挂着后台播放音乐,QQ有收到了朋友的新消息,这些都在占用电脑的CPU,从而影响电脑的运行速度。行文至此,下一篇介绍时间复杂度的计算方法。再会。
2024-11-18 00:12:29
1140
原创 输入两个数并对其进行求和
对于函数,在与人工智能大模型的交流中,笔者了解到,有些函数(如文本中的add函数)需要自己进行编写,有些函数(如文本中的scanf,printf函数)属于C语言标准库中的函数,可以直接调用而无需说明。输入两个数,需要先对变量进行定义,需要注意到的是,由于需要一个载体来作为a+b的输出值,笔者定义了三个变量,并运用scanf函数实现对a 与b的输入。随后笔者也是成功完成了oj的第一题了啊,虽然不是很题目不是很困难,但是成功运行了这样一个程序的时候,喜悦是难以言表的。,使用呢函数并进行求和。
2024-09-26 14:37:59
795
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人