- 博客(34)
- 收藏
- 关注
原创 子类必须调用父类的构造函数?
所以,如果子类和父类都有__init__初始化方法,则子类必须在自己的__init__初始化方法中,正确调用父类的__init__初始化方法!,来调用父类的初始化方法,这种写法不与父类的类名进行绑定;这种情况下,可以保证,在菱形继承的场景下,顶层父类的初始化方法不会被多次调用!如果不显式调用父类的__init__方法,父类的__init__方法就不会被执行。,这种写法比较清晰易懂,但是与父类的类名进行了绑定;如果子类和父类都有__init__初始化方法,子类其实是。父类的__init__方法,
2024-12-13 10:38:55
462
原创 关键字 --- static - 02
由于静态局部变量只会被初始化一次,因此,只有在第一次调用test()函数时,才会对静态局部变量x进行初始化!在test()函数调用结束后,静态局部变量x并没有被销毁,而是保持状态,直到下一次调用test()函数时,才会再一次改变静态局部变量x的值。a是全局变量,也存储在内存的静态区,其有默认值,由于a的数据类型为int,所以其默认值为0。被static修饰的变量,会被存储在内存的静态区,因此,会有与之对应的默认值!所以,可以得到输出结果为:6 6 6 6 6 6 6 6 6 6。
2024-11-06 21:03:29
160
原创 在源文件(.cpp文件)和头文件(.h文件)中,声明与定义的区别
在include该头文件的源文件中,在函数外进行 "定义变量" 和 "声明变量"在头文件test01.h中,可以多次声明同一个变量,但是,某个变量只能定义一次!这种方式,包括了声明与定义两个步骤,也可以叫做 "告诉编译器,某个变量的名字和数据类型,同时,也。注意:声明可以出现多次,定义只能出现一次!声明可以出现多次,定义只能出现一次!声明可以出现多次,定义只能出现一次!在源文件( .cpp文件 )中的。在源文件( .cpp文件 )中的。存储空间的,叫定义变量!存储空间的,叫声明变量!,因此,在声明的时候,
2024-10-24 15:19:25
409
原创 cmake的安装 -- Windows系统
Windows下的CMake详细安装教程(2024/1/24)_windows 安装cmake-优快云博客。
2024-10-08 21:49:43
238
原创 函数的默认参数的设置
调用设置了默认参数的函数时,如果其某个默认参数不想使用默认的参数值,而想使用其他值时,则该默认参数左边的所有参数都必须被显式地传递一个值!return 0;int result;如果参数c不想使用默认值,则也要显式地给参数b传递一个值;如果参数d不想使用默认值,则也要显式地给参数b、c分别传递一个值!补充:对于没有默认参数的函数(1)如果没有进行函数声明,函数定义的位置,一定要在函数调用的位置之前!否则,就报错!下面的示例代码,成功运行!
2024-09-14 19:11:18
415
原创 C++代码的预处理、编译、汇编、链接的全流程
C/C++:编译全过程——预处理、编译、汇编、链接(包含预处理指令:宏定义,文件包括、条件编译)_怎么在devc++里面把c文件变成汇编语言-优快云博客。详解C++代码从源代码到可执行文件的整个编译过程(预处理、编译、汇编和链接)_c++源文件到可执行文件的过程-优快云博客。C++ 预编译,编译,汇编,链接 - Suarezz - 博客园 (cnblogs.com)详解C/C++代码的预处理、编译、汇编、链接全过程 - 知乎 (zhihu.com)C/C++编译链接 - 知乎 (zhihu.com)
2024-09-14 18:50:58
542
原创 OpenMP参考博客
OpenMP基础知识详解及代码示例,学习OpenMP看这里就够了!_openmp for order-优快云博客。OpenMP、MPI、CUDA总结_mpi与cuda-优快云博客。OpenMP使用教程:入门到精通_openmp教程-优快云博客。OpenMP(仅供学习使用)-优快云博客。并行编程——OpenMP-优快云博客。OpenMP使用详解-优快云博客。
2024-09-05 19:27:17
1761
原创 一维数组作为函数的参数
引用是一个别名;即,一个变量或者一个对象的另一个名字;在这个例子中,void func(int (&arr)[5])中的arr就是数组arr的另一个名字,只不过数组的这两个名字一样;
2024-08-27 19:49:21
257
原创 一维数组中,arr、&arr[0]、&arr、*arr、arr[0]、*&arr
因此,在表达式 "arr+1"中,arr被隐式转换为指向数组第一个元素的指针,则arr+1是,指向数组第二个元素的指针,其值等于数组第二个元素的地址( 即,该元素所在存储空间的首地址 )!所以,"(&arr)+1"的值( 地址值 ),与&arr的值( 地址值 ),相差20个字节( 该值是,&arr所指向的数组所占据的存储空间的大小 )。arr 和 &arr 的值是相同的,都等于,数组的起始地址/首地址,即,数组第一个元素的地址( 所在存储空间的首地址 );也就是,数组的地址,等于,数组第一个元素的地址!
2024-08-27 12:28:39
700
原创 C++逻辑控制语句
上图中,执行break语句,会跳出该break语句所在的内层for循环,但不会跳出外层for循环,继续执行外层for循环的后面语句!上图中,执行continue语句,不会跳出该continue语句所在的内层for循环,但是会跳过。执行到goto语句,程序会跳转到finish标记的语句,从该标记语句继续顺序执行!,只是会跳过本次循环的循环体内continue语句后的语句!语句,将会跳转到,被标记的语句,程序将会从被标记的语句继续顺序执行!括号里面的表达式的值为真,则执行大括号里面的语句,否则执行。
2024-08-26 21:32:34
474
原创 C++运算符
在 C++ 中,逻辑运算符的操作数可以是任何类型,但在进行逻辑运算时,它们会被转换为布尔值(true 或 false)。以下是一些关于什么被视为“假”的详细说明:(1)布尔类型false:布尔类型的值false,本身就是假!(2)整数类型0:在C++中,整数值0,被视为假;非零值:任何非零整数( 如1、-1、42等 ),都被视为真!(3)指针类型nullptr:空指针nullptr,被视为假;非空指针:任何指向有效对象的指针,都被视为真!(4)自定义数据类型重载operator bool。
2024-08-26 15:48:02
224
原创 关键字 --- volatile
被关键字volatile修饰的变量,编译器会知道,该变量是一个容易发生变化的变量。每次用到该变量时,都是,直接从内存地址中获取该变量的值!时,没有使用关键字volatile对其进行修饰,所以,编译器为了对代码进行优化,会认为,在对变量b进行初始化时,时,使用了关键字volatile对其进行修饰,所以,编译器知道。的值没有发生变化,编译器会将缓存中。的值时,编译器都会直接从内存中读取。的值是容易发生变化的!用编译器不知道的方法,对。的值直接赋给变量b!
2024-08-26 14:50:31
238
原创 关键字 --- typedef
关键字typedef,用来,为一个已存在的数据类型,起一个别名!也就是,给该数据类型,另起一个名字!类比于,变量的引用!变量的引用,也是给一个已存在的变量,另起一个名字!在项目中,通过关键字typedef,为已存在的复杂数据类型,另起一个名字,可以提高代码的可读性!
2024-08-26 14:21:28
189
原创 关键字 --- constexpr
constexpr使得编译时计算成为可能,适用于,需要在编译时求值的场景。const主要用于定义,在运行时不可修改的常量。理解两者的区别和用法可以帮助你写出更高效和安全的代码。constexpr函数的主要限制在于,对constexpr函数的复杂性和使用的特性有要求!以确保,在编译时,可求出constexpr函数的值。constexpr函数的返回值,可以在编译时确定,前提是,满足constexpr的条件;否则,返回值将在运行时计算。通过遵循以上规则和示例,你可以编写合法的constexpr。
2024-08-23 10:36:11
1552
原创 关键字 --- const
当const只与基本数据类型( 或者自定义的数据类型 )放在一起时,const放在基本数据类型( 或者自定义的数据类型 )前面,与const放在基本数据类型( 或者自定义的数据类型 )后面,效果是等价的,都是修饰变量,使得变量的值不能发生改变!const修饰的是基本数据类型int,也就是,const修饰的是指针所指向的变量!所以,指针p的值是可以变化的,也就是,指针p可以指向不同的变量!这里,只有const与基本数据类型int放在一起,所以,const修饰的是变量p,变量p的数据不能被改变!
2024-08-22 21:58:36
229
1
原创 引用简单介绍
引用是已存在变量的另一个名字;比如,变量a,它的引用是b,则b是变量a的另一个名字; 因为引用是变量的另一个名字,所以变量及其引用,指向同一个存储空间,拥有相同的存储空间地址;这两者中,一个发生变化,另一个也随之发生变化; 引用与指针之间的区别: 一定不能存在空引用! 不能改变引用所指向的对象,因为它是某个变量的另一个名字; 引用必须在创建时,被初始化!
2024-08-22 21:25:03
287
原创 指针简单介绍
指针是C/C++很特别的数据类型,为访问内存地址提供了方便; 指针是一个变量,它的值是另一个变量的存储空间的地址; 指针是一个变量,在32位系统上,占据的存储空间是4个字节;在64位系统上,占据的存储空间是8个字节; 使用 星号*,可以访问,存在于,指针中所存储的地址所对应的存储空间中的值;
2024-08-22 21:08:56
209
原创 基本数据类型 --- 联合体(union)
一个联合体(union)体数据的所有成员,共用一个内存空间!一个联合体(union)数据的所有成员,在内存空间角度,偏移都是0,没有偏移;该联合体(union)数据的大小,等于,占据存储空间最大的那个成员的大小!
2024-08-22 19:42:59
237
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人