随笔分类 -  C++ / C++基础

摘要:一、string类型转换int类型 ... std::string str; int i = std::stoi(str); ... 同样, 可以使用 stol(long), stof(float), stod(double) 等. 二、int类型转换string类型 int a = 520; fl 阅读全文
posted @ 2024-07-27 11:41 ImreW 阅读(9) 评论(0) 推荐(0) 编辑
摘要:(一)全局变量 全局变量、文件域中的静态变量、类中的成员静态变量在main函数执行前初始化; 局部变量中的静态变量在第一次调用时初始化。 C++保证,全局变量在main函数第一次使用它之前,就把它初始化好。(可以直接理解成在main函数执行前就初始化好)但这个初始化可细分为:编译时初始化和运行时初始 阅读全文
posted @ 2023-05-16 17:45 ImreW 阅读(971) 评论(0) 推荐(0) 编辑
摘要:我们首先从一个问题来阐明类的底层机理: 假如有一个类A,里面有一个成员函数get(),例如: class A { public: void get(); } A a; 那么a.get()表示什么呢?首先给出答案是get(&a),因为在类的底层机制中,成员函数的第一个参数都是一个指向该类数据结构的指针 阅读全文
posted @ 2023-04-17 15:50 ImreW 阅读(13) 评论(0) 推荐(0) 编辑
摘要:(一)多重含义 C++中的 * 和 & 有多重含义,在不同的使用条件下有不同的意思: 1.* int *p = &a; /1.指针 a = a * b; /2.乘法 *p = 100; /3.指向 2.& int c = a&b; /1.位运算 转换为二进制 int *p = &a; /2.取地址 阅读全文
posted @ 2023-04-03 22:04 ImreW 阅读(26) 评论(0) 推荐(0) 编辑
摘要:一、多态的概念 面向对象的三大特性:封装、继承、多态。多态即多种形态,具体的来说就是,针对同一种行为,不同的对象执行其会产生不同的结果。而之所以“不同的对象”会执行同一种行为,是因为这些对象具有继承关系。 多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如 Student 继承了 阅读全文
posted @ 2023-03-14 16:56 ImreW 阅读(59) 评论(0) 推荐(0) 编辑
摘要:C++中经常使用的作用符::,作用如下: (一)作用域限定符。 在类体内申明函数,并在类体外定义函数时,必须在定义函数时加上类名和作用域限定符。 class MyClass{ public: int num; int fun();//类体内申明函数 }; //类体外定义函数 int MyClass: 阅读全文
posted @ 2023-02-26 14:21 ImreW 阅读(239) 评论(0) 推荐(0) 编辑
摘要:一、const的基本概念 const名叫常量限定符,用来限定特定变量,以通知编译器该变量是不可修改的。习惯性的使用const,可以避免在函数中对某些不应修改的变量造成可能的改动。 二、const修饰基本数据类型 (一)const修饰一般常量及数组 int const a = 100; const i 阅读全文
posted @ 2023-02-21 15:36 ImreW 阅读(120) 评论(0) 推荐(0) 编辑
摘要:策略模式github 阅读全文
posted @ 2023-02-20 21:01 ImreW 阅读(12) 评论(0) 推荐(0) 编辑
摘要:一、程序的内存分配 (〇)存储器 RAM: 随机存取存储器(random access memory)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。 它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。存储单元的内容可按需随意取出或存 阅读全文
posted @ 2023-02-19 14:39 ImreW 阅读(1563) 评论(0) 推荐(1) 编辑
摘要:(一)默认参数 C++函数中的形参列表中的形参是可以有默认值的 语法:返回值类型 函数名(参数 = 默认值){} 注意事项: 如果我们自己传入数据,就用自己的数据,如果没有,就用默认值 如果某个位置参数有默认值,那么从这个位置往后,从左往右,必须都要有默认值 如果函数声明有默认参数,函数实现就不能有 阅读全文
posted @ 2023-02-18 21:30 ImreW 阅读(40) 评论(0) 推荐(0) 编辑
摘要:一、override override的翻译是覆盖。实际上它在C++中可以检测哪些虚函数没有被重写并报错 注:在派生类的成员函数中使用override时,如果基类中无此函数,或基类中的函数并不是虚函数,编译器会给出相关错误信息。 void paintEvent(QPaintEvent*)overri 阅读全文
posted @ 2023-02-18 21:14 ImreW 阅读(8) 评论(0) 推荐(0) 编辑
摘要:(一)delete一个指针之后设置为nullptr原因 我们在用动态内存分配时,可以使用new在动态内存中为对象分配空间并返回一个指向该对象的指针,比如说int* ptr = new int(1);,在自由空间构造一个int型对象,并返回指向该对象的指针给int* ptr。(注意:ptr只是一个变量 阅读全文
posted @ 2023-02-18 16:34 ImreW 阅读(433) 评论(0) 推荐(0) 编辑
摘要:一、基础知识 1.数组的本质 数组是多个元素的集合,在内存中分布在地址相连的单元中,所以可以通过其下标访问不同单元的元素。 2.指针 指针也是一种变量,只不过它的内存单元中保存的是一个标识其他位置的地址。由于地址也是整数,在32位平台下,指针默认为32位。 3.指针的指向 指向的直接意思就是指针变量 阅读全文
posted @ 2023-01-19 16:53 ImreW 阅读(141) 评论(0) 推荐(0) 编辑
摘要:1、malloc()函数 malloc()函数的头文件是stdlib.h,其函数声明如下: void* malloc(size_t size); 其中参数size_t size表示动态内存分配空间的大小,以字节为单位。 size_t 是typedef重定义的类型,重定义这样数据类型的作用就是让使用者 阅读全文
posted @ 2023-01-19 15:38 ImreW 阅读(638) 评论(0) 推荐(0) 编辑
摘要:to do 阅读全文
posted @ 2022-12-21 21:31 ImreW 阅读(12) 评论(0) 推荐(0) 编辑
摘要:to do 阅读全文
posted @ 2022-11-26 16:30 ImreW 阅读(18) 评论(0) 推荐(0) 编辑
摘要:​float 是单精度浮点数,内存占4个字节,有效数字8位,表示范围是 -3.40E+38~3.40E+38。 double 是双精度浮点数,内存占8个字节,有效数字16位,表示范是-1.79E+308~-1.79E+308。 存储方式 float的存储方式如下图所示: 双精度的存储方式为: 阅读全文
posted @ 2022-11-20 21:57 ImreW 阅读(50) 评论(0) 推荐(0) 编辑
摘要:取绝对值函数在多个头文件均有定义 一、stdlib.h _Check_return_ int __cdecl abs (_In_ int _Number); _Check_return_ long __cdecl labs (_In_ long _Number); _Check_return_ lo 阅读全文
posted @ 2022-11-20 11:33 ImreW 阅读(216) 评论(0) 推荐(0) 编辑
摘要:c/c++共有 1):修饰全局变量时,表明一个全局变量只对定义在同一文件中的函数可见。 2):修饰局部变量时,表明该变量的值不会因为函数终止而丢失。 3):修饰函数时,表明该函数只在同一文件中调用。 c++独有: 4):修饰类的数据成员,表明对该类所有对象这个数据成员都只有一个实例。即该实例归 所有 阅读全文
posted @ 2022-11-15 11:08 ImreW 阅读(54) 评论(0) 推荐(0) 编辑
摘要:to do 阅读全文
posted @ 2022-11-15 10:38 ImreW 阅读(15) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示