- 博客(16)
- 收藏
- 关注
原创 C++函数指针和std:function、std:bind
std:bind——将函数或可调用对象与特定参数绑定,从而创建一个新的可调用对象;语法:函数类型+(指针)(参数类型)= 所指函数。封装lambda表达式。
2024-09-23 09:10:19 232
原创 C++STL
STL(Standard Template Library,标准模板库)STL从广义上分为:容器(container)算法(algorithm)迭代器(iterator)容器和算法之间通过迭代器进行无缝连接STL几乎所有代码都采用了模板类或者模板函数
2024-09-03 21:26:16 1235
原创 C++模板
将声明和实现写到同一个文件中,并更改后缀名为.hpp,.hpp是约定的名称,并不是强制。typename --- 表面其背后的符号是一种数据类型,可以用class代替。建立一个通用类,类中的成员数据类型可以不具体制定,用一个虚拟的类型来代表。建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个。T --- 通用的数据类型,名称可以替换,通常为大写字母。全局函数类外实现 - 需要提前要编译器知道全局函数的存在。在上述代码中,如果传入的是数组或者类,就无法实现了。模板的通用性并不是万能的。
2024-08-16 10:08:38 338
原创 C++文件操作
文件的类型分为两种:1.文本文件 - 文件以文本的ASCII码形式存储在计算机中2.二进制文件 - 文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们操作文件的三大类1.ofstream:写操作2.ifstream:读操作3.fstream:读写操作。
2024-08-03 22:55:40 377
原创 C++继承
首先,无论是哪一种继承方式,父类中的私有类型是无法访问的(设置成友元除外)。而变成子类中的private类型时,子类本身是可以对其进行访问的,比如第三种情况。当然,在类外依旧无法访问类内的私有成员。父类的所有非静态成员属性都会被子类继承下去,其中private类型的只是没有办法访问,但是依旧被继承下来了。这里加上了Animal::,等于说指明了作用域,因此可以访问父类中的同名成员了。这样,后来的Sheep类,Tuo类以及YangTuo类都能指向同一份数据c。保护类型:类内可以访问,而类外不能访问。
2024-05-17 20:34:49 773
原创 C++ 友元
将一个类作为另一个类的友元,这样前一个类创建的对象就可以访问后一个类的私有成员变量。这时,将Friend设置为Building类的友元,就可以继续访问。在Friend函数中,如果直接调用私有成员变量,程序报错。这样,可以单独将类的一个成员函数作为友元。
2024-04-18 21:05:26 349 1
原创 C++ 深拷贝与浅拷贝
我们注意test函数,在p1创建时调用了含参构造函数,而这里m_Height由于是指针类型的,所以我们new了一块内存,使m_Height指向160的内存地址。此时在拷贝构造函数中我们看到,对于m_Height,这个是进行直接赋值的,由于m_Height是指针类型,所以这里代表。由于堆中内存需要手动销毁,所以我们选择在析构函数调用时顺便手动销毁堆中的内存,运行后发现程序报错。我们观察拷贝构造函数,发现此时p1,p2的堆区已经不一样了,这时再运行就没有问题了。这就是浅拷贝直接赋值会出现的问题,堆区指向重叠。
2024-04-16 23:13:03 589 1
原创 Java开发-一小时学会贪吃蛇游戏
(paintComponent方法其实属于Panel的超类JComponent,不过因为添加到框架时要用到JPanel,故这里也可以理解为重写),同时在MySnake类中,创建一个MyPanel类的对象,添加到f中。画完之后,要建立食物和蛇的互动,当蛇头坐标等于食物时,蛇的长度增加,由于长度增加这一事件属于活动,我们自然想到在actionPerformed方法中进行。是一种常见的做法,主要用于执行一些基本的图形绘制处理,如清除旧的画面内容,确保组件的其他部分正确渲染,以及处理一些继承的绘图逻辑。
2024-04-15 13:00:23 2165 1
原创 Java 稀疏数组
运行结果:意思是11行11列,有两个有效的元素(其余元素为0)1 2 1 的意思是第二行第三列有一个元素,值为12 3 2 的意思是第三行第四列有一个元素,值为2。
2024-04-11 21:17:44 257 1
原创 Java 多态
static 方法:因为static方法属于类本身而不是实例,因此子类无法提供一个不同的static方法来“替换”或“重写”父类中的static方法。(当你尝试在子类中定义一个与父类static方法签名相同的方法时,你实际上是在子类中隐藏(或阴影,shadowing)了父类的static方法,而不是重写它。这意味着在子类中调用该方法时,将执行子类的static方法,而不是父类的。对于子类对父类重写的方法,无论是父类引用指向子类对象(多态)还是直接创建一个子类对象,都会调用子类中已经重写的方法。
2024-04-11 19:47:09 287 1
原创 Java static字段
在使用时,(静态)代码块会在类被加载到JVM时运行,主要用于初始化静态变量,或者在类加载时执行一些只需执行一次的代码。如图在导入random后将其设为静态的,即可不用Math.random(),而是直接调用。关键字进行标记,并且它们不是类的成员,而是属于类本身。调用顺序:静态代码块->代码块->构造器。,且按照它们在类中出现的顺序执行。
2024-04-11 19:21:21 212 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人