- 博客(27)
- 收藏
- 关注
原创 Spuer().__init__的意义
在Python中,子类不会自动调用父类的构造函数。,我们明确地指示Python调用父类的构造函数。在这里确实是在显式调用。
2024-07-12 18:03:33
335
原创 C++理论期末复习
C错,是的,使用catch(...)可以捕捉任何类型的异常,这表示函数可以抛出任何异常类型。C++处理异常的机制是由检查、抛出和捕获3部分组成如果在try块中没有找到匹配的catch块,异常会传播到调用栈的上一层,即调用该try块的函数或方法中。这也是正确的。C.一种处理程序中意外情况的方法正确的答案是:C. throw;catchthrow;在这个示例中,函数捕获到一个异常,并使用throw;重新抛出该异常。在main函数中再次捕获并处理这个异常。不一定必须继承自std::expection。
2024-07-10 01:23:12
629
原创 关于友元函数的定义与声明
这种设计允许你在需要时仅在类声明中显式指定友元函数,并且在实现时不需要重复指定。在类外部实现友元函数时,不需要再使用。只需定义函数的签名和实现即可。关键字,只需正常地定义函数即可。函数为友元函数的语法。函数时,不需要再加上。关键字声明友元函数。
2024-06-29 15:57:43
198
原创 为什么throw一个类出来,这个类是继承于Exception,能被捕获
异常类继承关系ExceptionExceptiontoString()TriangleExceptionExceptionException&
2024-06-29 15:40:32
349
原创 范围基for循环(range-based for loop)
"范围基for循环"(range-based for loop)是 C++11 引入的一种新语法,用于遍历容器(如数组、向量、列表等)和范围。这种循环使得对容器内所有元素的访问更加直接和清晰,减少了编码错误的可能性,也使代码更易于阅读和维护。
2024-06-25 16:18:59
608
原创 sort()函数的基本运用
如果你想按照不同的标准排序(如降序或根据对象的某个属性),你可以向std::sort提供第三个参数,即一个比较函数或者一个函数对象。比如,使用//greater是模板,所以必须要使用int进行控制C++ 中的std::sort函数不仅可以对容器如进行排序,也可以对普通数组进行排序。对于数列,你可以使用数组或std::array(如果知道数列的大小并且不会改变)。使用普通数组排序i < n;这里使用对数组arr进行排序。arr + n。
2024-06-25 15:03:25
267
原创 STL笔记
/ 访问最后一个元素// 输出: 5// 修改最后一个元素// 输出: 10return 0;利用swap交换空间在 C++ 中,互换容器(swap)是指将两个容器的内容交换。对于使用成员函数swap使用全局函数std::swap这两种方式都可以高效地交换两个vector对象的内容,而不会实际移动元素,从而提高性能。在上一个示例中,自定义比较函数的作用是将列表按照降序排序。这个函数的逻辑是:如果a应该排在b前面,则返回true,否则返回false。对于降序排序,函数应该返回true。
2024-06-17 17:06:48
687
原创 使用self.param方法和posemb_init函数初始化位置
【代码】使用self.param方法和posemb_init函数初始化位置。
2024-04-12 01:36:46
144
1
原创 关于引用特殊情况的编译
引用可能会修改绑定的对象,而临时对象在表达式结束时就会被销毁,这通常是不安全的)。因此,这段代码会导致编译错误。的结果是一个右值(即,一个临时结果,而不是一个具有明确存储位置的变量),而非。引用可能会修改它所绑定的对象,而右值通常不是持久对象,这样的修改没有意义。对象来从字面量构造一个字符串。类型,因此编译器会尝试创建一个临时的。引用不能绑定到临时对象上(因为非。)不能绑定到右值上。这里尝试将一个字符串字面量(在C++中,字符串字面量是。这段代码尝试将表达式。函数,该函数接受一个。
2024-04-08 18:05:38
181
1
原创 拷贝构造函数和拷贝赋值函数
思考:只有一个拷贝构造函数不行吗?回答:在C++中,拷贝构造函数和拷贝赋值操作符虽然执行相似的操作——它们都用于从另一个对象复制数据——但它们在不同的情况下被调用,因此两者都需要定义以确保对象的正确拷贝。
2024-04-08 18:04:02
295
1
原创 一道有关类和new的奇怪的理论题
1. **栈对象:** 尽管类 `A` 的析构函数被删除了,但是你仍然可以在栈上创建 `A` 的实例,如 `A a;` 和 `A* pa = new A;2. **堆对象:** 对于通过 `new` 动态分配的对象,如 `A* pa = new A;总结而言,这段代码试图展示一个具有删除析构函数的类,这导致无法正常销毁该类的对象,无论是自动销毁还是通过 `delete`。但是在尝试销毁任何 `A` 类型的对象时,比如离开作用域时自动销毁局部变量或显式使用 `delete`,都会导致编译错误。
2024-04-01 18:46:22
180
1
原创 static函数和变量在类中的访问
在C++中,静态成员函数不属于类的任何特定对象实例,因此它们没有访问非静态成员变量的能力,因为非静态成员变量是与特定对象实例相关联的。是一个非静态成员变量,而静态成员函数不能访问非静态成员变量。代码尝试在一个静态成员函数中访问一个非静态成员变量。,并在类外初始化为5。静态成员变量在类的所有实例之间共享。随后,无论是通过哪个实例调用。下列c++代码的输出是什么。在你提供的C++代码中,类。被调用时,它将静态成员变量。的值改为10,因此每次调用。,打印的都是静态成员变量。会导致编译错误,因为。
2024-03-25 21:08:46
156
原创 一道很有意思的苟晞函数和构造函数的理论题
当创建类B的对象b1时,首先会调用其成员变量a(属于类A)的构造函数,然后调用类B的构造函数。当对象b1的生命周期结束时(在main函数结束时),首先调用B的析构函数,然后调用A的析构函数。这是因为析构函数的调用顺序与构造函数的调用顺序相反。
2024-03-25 20:52:13
163
原创 python自学
类是通过关键字class定义的,后跟类名和冒号。类名通常使用大驼峰命名法(CamelCase)。pass方法就是类内部的函数类是创建对象的蓝图或模板,它定义了构成对象的属性和方法。对象是类的实例,是根据类模板创建的具体实体,拥有类定义的属性和方法。类是抽象的定义,而对象是具体的实例。私有成员是通过在成员名称前添加双下划线__来定义的。这告诉Python解释器对这些成员名进行改写,以防止它们在类外部被访问。在这个例子中,和都是私有的,只能在MyClass内部访问。
2024-03-05 15:50:37
771
1
原创 一些c++理论逆天题(长期更)
当用在加法表达式中,它会被转换为指向其第一个元素的指针。的第一个字符之后的位置的指针。这种操作利用了 C++ 中的指针算术。字符串的第二个字符开始的子字符串,即。尝试执行一个加法操作,在一个整数 (加到这个指针上,这意味着结果是指向。是一个字符串字面量,其类型为。在 C++ 中,这行代码。) 和一个字符串字面量 ((包含了结尾的空字符。
2024-02-27 21:51:17
516
1
原创 超算选拔草记
关闭这些服务的好处可以包括减少系统开销,减少安全攻击面,以及简化系统配置。A:firewall可以如图直接关闭,但是selinux有多种关闭方式,我选择了直接彻底关闭(最简单暴力的修改配置文件)。关于 gcc/g++/gfortran/nfs-utils/tmux/htop/vim/git的安装。文件保存了系统的静态主机名,这个文件在系统启动时被读取,以设置系统的主机名。主机名(hostname)是系统的标识名,通常在网络中用于识别设备。比如selinux的报错很复杂,而且会导致操作被阻止带来的麻烦。
2024-01-18 15:54:55
380
1
原创 约瑟夫环问题
题目描述 n (n<=100)个学生排队报数,编号为1到n,然后从1数到3循环报数,每次数到3的人就退出,最后留下来的是编号多少的学生。比如,总共4名学生,编号为1,2,3,4。第一次报数1(报数1),2(报数2),3(报数3),4(报数1),3号退出,第二次报数1(报数2),2(报数3),4(报数1),2号退出,依此类推,直到只剩1名学生,输出其编号。非常值得注意的是循环利用i=(i+1)%num;
2024-01-09 00:35:19
390
原创 c语言理论题期末整理
这些类型有不同的大小和范围,但它们之间的确切大小关系并不是严格定义的,而是依赖于编译器和所运行的平台。综上所述,A(已知常量大小的数组)、B(变长度数组)和C(未知大小数组)可以被视为数组类型的变体,而D(有序数组)是关于数组内容的描述,而非类型的变体。解答:在 C 语言中,当数组作为参数传递给函数时,实际上传递的是数组的首元素地址。在C语言中,一个变量在任何给定的作用域内只能被定义一次,以避免存储空间的重复分配和潜在的冲突。一个数组是否有序,取决于它的内容和如何被程序处理,而不是数组的类型。
2024-01-08 01:25:32
1199
原创 连续子序列的最大和问题
小猫咪玩游戏,现在有n张牌依次放在地上,牌上有数字,数字的范围是-20~20,正数表示可以奖励对应数目的猫粮,负数表示减去对应数量猫粮。猫咪可以从中连续选择k张牌, 0<=k<=n(k=0表示不选牌,即0包猫粮),即能获得数量为k张牌的数字之和的猫粮。实现一个函数,求出猫咪最多能获取几包猫粮,1<=数组长度<=100。已提供main函数解决输入输出,只需要实现函数即可。输出猫咪所能获得的最多猫粮数量。第一行一个数字,数组长度n。接下来的n行输入数组的数字。
2023-11-24 16:30:12
79
1
原创 马走日及蹩脚的一道题代码
else{int main()int x1,y1;int x2,y2;if(!i<8;i++){i<6;i++){i<6;i++){i<6;i++){i<8;i++){return 0;
2023-11-09 22:13:17
73
2
原创 埃氏筛素数法
i<n;i++){i++){if(!visit[i]){j<n;j+=i){int k=0;prime[0]=2;i<n;i++){if(!visit[i]){return k;int a;i<k;i++){
2023-11-09 15:12:07
45
2
原创 自己写的倒序
int num;int arr[5];int i=0;i++;k<5-i;k++){j<5-i;j++){;num<5-i;num++){return 0;
2023-11-08 21:16:31
41
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人