自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 内存对齐规则

class a // size(a) = 8{ int c; char v;};class a // size(a) = 24{ double d; int c; int c2; char v;};class a // size(a) = 16{ double d; int c; char v;};内存对齐会以第一个成员变量作为基准,之后的内存都长度都是基准的整数倍(1) 结构体第一个成员的偏移量(offset)为0,以后每个成员相对于结构体首地址的

2021-06-10 19:14:28 84

原创 const去除的测试

原来const真的是const,但又不完全是const在指向同一块地址里的不同变量有不同的值。void test01(){const int constant = 21;const int* const_p = &constant;int* modifier = (int*)(const_p);*modifier = 9;cout<<"constant = "<<constant<<endl;//21cout<<"*const_p =

2021-06-10 17:51:41 110

原创 candidate expects 1 argument, 0 provided 错误解决

项目场景:提示:这里简述项目相关背景:错误场景 : 试验静态绑定和动态绑定问题描述:提示:这里描述项目中遇到的问题:在写有继承关系的类的构造函数时发现会报出一个错误candidate expects 1 argument, 0 provided搜索发现这个错误是和调用了默认构造函数有关,class Person{public: //Person() = default;Person(int b):a(b){ } virtual void P() { cou

2021-05-28 09:02:19 7773

原创 写delete时遇到的问题

在写delete的时候会跳出错误“ConsoleApplication1.exe”(Win32): 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。“ConsoleApplication1.exe”(Win32): 已加载“C:\Windows\SysWOW64\kernel32.dll”。无法查找或打开 PDB 文件。“ConsoleApplication1.exe”(Win32): 已加载“C:\Windows\SysWOW64\KernelBa

2021-05-26 12:51:06 201

原创 数据类型转换二义性测试

数据类型转换二义性测试当数据作为函数参数传递时,char 和 short 优先转换成int,float 优先转换成double。进行数据类型转换时,当一个类中同时有多个类型转换函数时,规则和第一点一样,,但是如果是其他的就会因为数据类型转换级别相同而导致二义性。一个类同时有多个用算数类型来构造一个类时,规则同一![在这里插入图片描述](https://img-blog.csdnimg.cn/20210506093030267.png?x-oss-process=image/watermark,typ

2021-05-06 09:41:14 189

原创 拷贝构造调用时机

拷贝构造调用时机1.当使用隐式构造函数时,先创建一个没有名字的临时对象,然后再调用拷贝构造函数,将临时的对象赋值给要创建的对象,因为这里删除了拷贝构造,所以报错了。2.在拷贝赋值的时候也会调用拷贝构造函数。...

2021-04-19 14:52:02 54

原创 超级简单搞清楚名称空间的变量使用问题

超级简单搞清楚名称空间的变量使用问题首先搞清楚变量三种访问方式:直接变量名访问用解析运算符**(:: + 变量名)**访问用名称空间限定变量名访问使用名称空间的变量有两种方法:使用using 编译指令 using namespace + 名称空间使用using 声明 using 名称空间::变量名使用这两种方法的时候,using 编译指令 类似于 定义了一个全局变量,using 声明 类似于 定义了一个局部变量,即用来解释以下情况:当自己定义了一个全

2021-04-19 12:55:18 251

原创 C语言/c++:实验报错[Error] ld returned 1 exit status的解决方案

C语言/c++:实验报错[Error] ld returned 1 exit status的解决方案https://blog.csdn.net/e_t_e_r_n_i_t_y/article/details/109982282

2021-04-19 12:43:31 550

原创 namespace的命名空间变量使用

用namespace命名空间可以避免很多厂商自己造的轮子与其他厂商的产生命名冲突,所以,可以将自己写的一些函数包装在namespace中,既可以放心的使用自家造的轮子,也避免命名冲突 。项目场景:使用namespace的命名空间变量解决名称冲突问题问题描述:fill中的val 和 全局变量val产生二义性#include<iostream>using namespace std;#include<string>namespace fill{ int val = 2

2021-04-17 23:36:06 687

原创 寻找环形链表的入口

寻找环形链表的入口复制:

2021-04-14 14:50:32 71

原创 数据结构 ———Kmp算法

Kmp算法推荐视频 : https://www.bilibili.com/video/BV1Px411z7Yo?t=669 学习过程中,是参考这个Kmp讲解视频来学习的。1.先理解Kmp算法的比较过程推荐视频 : https://v.qq.com/x/page/t0386qcr36t.html这里有Kmp的具体比较过程。2.自己对Kmp算法的一个文字理解为什么要弄一个回溯的a数组:因为 1.先创建一个a数组,储存待比较的字符串的最长相等前后缀。1.1示例图 :字符串 A B

2021-04-10 15:18:53 72

原创 c++小知识点记录

传递引用作为函数参数时,实参不能是表达式。传递引用时,并且参数为const时。当参数类型不匹配,但是可以转换的,会创建一个临时变量,当实参不是一个左值(例如表达式),会创建一个临时变量,临时变量的生存期为函数调用时期。左值是可寻址的变量,有持久性;右值一般是不可寻址的常量,或在表达式求值过程中创建的无名临时对象,短暂性的。左值和右值主要的区别之一是左值可以被修改,而右值不能。...

2021-04-08 12:53:25 48

原创 c++ 指向函数数组指针的指针

c++ 指向函数数组指针的指针难度逐渐上升:测试代码:输出结果图 :总结 :难度逐渐上升:1.函数 double* fun ( int a ); (返回double类型的指针变量2.函数指针 double* (*p) ( int );3.函数指针数组 double* (*p [3] ) ( int );4.指向函数指针数组的指针 double* (*( *p [ 3 ] ) ) ( int );测试代码:#include <iostream>#inclu

2021-04-07 22:29:06 230

原创 c++简易的预约系统。

c++的预约系统思路管理员功能介绍管理员功能实现学生功能介绍学生功能实现教师功能介绍教师功能实现文件夹链接(用的vs跟着黑马的c++教程敲完最后一个例子的思路思路创建的学生,管理员,老师,都有密码和账户,所以可以创建一个有密码和账户的基类选择输入要登陆的对象—管理员,学生,老师分别与储存对应账户的文件夹信息比对,判断是否登陆成功分流到管理员菜单,学生菜单,老师菜单,分别实现各自的功能管理员功能介绍 1. 添加账户 2. 查看账户 3. 查看机房信息 4. 清空预约信息管理员功

2021-04-06 17:15:36 408

原创 父类和成员类的构造函数和析构函数顺序

父类和成员类的构造函数和析构函数顺序#include"student.h"#include <iostream>#include <string>using namespace std;class Person{public: int a; Person() { cout << "Person构造" << endl; } ~Person() { cout << "Person析构函数" << endl

2021-04-02 09:59:21 91

原创 操作符重载,c++的一些规范写法,侯捷

<< 这个运算符只能用全局函数重载,,

2021-03-28 10:03:43 87

原创 c++ 的 inline表示的意思

inline表示内联,而且内联函数的速度更快,(inline关键字加在函数最前面)1.在类中实现的成员函数默认是内联的,2.如果成员函数不是在类中定义的就不是内联,如果需要就得自己加上inline关键字,不过最终是否是内联函数还是要取决于编译器,你的inline只是一种建议3.其他函数也可以定义成内联函数,不过只适用于简单的函数,没有for,while,switch case,这种结构...

2021-03-28 09:44:06 949

原创 map操作细节

c++STL 中map 插入和删除的一些小细节#include<iostream>using namespace std;#include<map>void printmap(map<int, int>&ma){ for (map<int, int>::iterator it = ma.begin(); it != ma.end(); it++) { cout << " first = " << it-&g

2021-03-27 13:52:21 65

原创 c++学习搜集的资料链接

c++学习路径分享https://zhuanlan.zhihu.com/p/355241793c++学习路径分享https://mp.weixin.qq.com/s/Ta3hf4M5ebhOatj_APr7IAC++后端开发路线 https://zhuanlan.zhihu.com/p/123356037侯捷C++系列视频https://blog.csdn.net/songhao19/article/details/113492683github仓库地址在这里(c++常用书籍):forth

2021-03-25 21:47:23 92

原创 c++文件基本操作

文件基本操作打开文件FILE * fopen(char * fileurl,char * mode);1.声明一个文件指针 : FILE *fp2.fopen打开文件 : fp = fopen(“文件位置”,“读写方式”); (如果fp==null,说明打开文件失败)绝对路径相对路径读写文件关闭文件...

2021-03-19 11:21:20 166

原创 数组空间不够怎么办

数组空间不够怎么办每次定义数组的时候都要确定他的大小,万一空间不够,那么解决有什么办法呢?重新建立一个大数组,然后把原来的数据一个一个移动到创建的新数组中———这样做未免太麻烦了,为了增加一个新的数字,要做的操作的时间复杂度竟然是O(n)一开始就不将数组建立在栈,int * a=(int * )malloc(3 * sizeof(* a));然后如果数据不够了就可以直接调用realloc()函数int * temp=(int * )malloc(4*sizeof(*a))//还可以做一个判

2021-03-19 08:26:20 1340

原创 简易图书管理系统

整体实现图书管理系统大概思路1. 接收数据2. 处理数据case 里的几个函数具体实现贴在文后。3. 输出数据全部代码图书管理系统大概思路1. 接收数据储存方式--------用 struct 定义一个结构体类型,包含书名,序列号,所属学科。并且给图书馆数据库初始化5本书struct Book{ string b_name; int b_number; string b_Subject;}book[20] = {"经济学原理",55,"经济学","价值与资本",59,"经济学",

2021-03-17 22:34:58 90

原创 c++的默认继承方式

@c++的默认继承方式是private继承一级目录二级目录三级目录c++的默认继承方式是private继承 #-----------c++的默认继承方式是private继承class Person{public: Person() { a = 100; cout << "这里是Person的构造函数" << endl; } ~Person() { cout << "这里是Person的析构函数" << endl

2021-03-16 13:33:36 2592

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除