自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++基础:19.静态库与动态库

静态链接是在编译时发生的,编译静态库时,将库链接到可执行文件中。静态库就存在于可执行文件中。动态链接是在运行时发生的,当可执行文件运行时,才会加载动态库。

2024-07-14 22:13:15 17

原创 c++基础:18.vector

我们通过断点的方式发现,在main()函数运行第二行后发生了第一次拷贝,运行第三行后又发生了两次拷贝,运行第四行后又发生了三次拷贝。这是vector进行了三次扩容。为什么还有三次拷贝,这是因为我们先通过构造函数Demo(1,2)构造了一个对象,然后复制到vector中的。vector会重新分配新的内存,分配一块新内存,将旧内存中数据复制到新内存,然后释放旧内存。emplace_back(),会根据传入的参数直接构造一个给定类型的对象。1.预估大小,避免扩容。

2024-07-14 21:16:20 29

原创 c++基础:17.智能指针

不控制所指对象的生存期,指向由一个shared_ptr所管理的对象,将weak_ptr绑定到一个shared_ptr不会改变shared_ptr引用计数,当最后一个指向对象的shared_ptr被销毁,对象会被释放。共享智能指针,多个shared_ptr可以指向同一个对象。当指向一个对象的最后一个shared_ptr被销毁时,shared_ptr类会通过析构函数自动销毁此对象。某个时刻只能有一个unique_ptr指向一个给定对象,当unique_ptr被销毁时,它所指对象也被销毁。

2024-07-12 16:23:53 111

原创 c++基础:16.运算符重载

【代码】c++基础:16.运算符重载。

2024-07-12 15:11:54 70

原创 c++基础:16隐式转换与explicit

b可以正常初始化,a不可以。因为这条语句做了两次隐式类型转换,一次是const char *转为string,再一次是string转为Demo。

2024-07-11 23:55:20 192

原创 c++基础:16.三元运算符

i>n,result = i,否则result=n。三元运算符可以简化代码。

2024-07-11 17:55:24 93

原创 c++基础:15.const与mutable

编译是不会通过的,因为常量引用表示不会修改引用对象,而GetX()不是常函数,所以是可以修改对象的,所以必修要在函数名后面加const。在方法名后面加const,表示不会修改这个类中的任何东西。mutable修饰的变量,可以在常函数中修改。const与常量引用。

2024-07-11 17:22:16 86

原创 c++基础:14.string

c++中字符是char数据类型的,字符串是字符组成的数组。

2024-06-29 21:47:10 171

原创 c++基础:13.数组

下标法访问第n个元素,就是访问相对于首地址的 n*sizeof(int)的地址偏移。一维数组代表一组同类型数据的集合。数组中内存是连续的。

2024-06-29 15:29:59 205

原创 c++基础:12.虚函数

基类中想要声明为虚函数的,要在前面加vitual,派生类中,重写的虚函数要在函数后加override关键字,override可以省略,建议添加有助于阅读。People类只有一个纯虚函数,可以将People类称为接口类,接口类不能实例化对象。派生类Student必须实现基类中的纯虚函数,否则也不能实例化对象。因为在类中正常声明的函数或方法,当调用这个方法的时候,总会去调用属于这个类型的方法。纯虚函数允许在基类中定义一个没有实现的函数,强制在基类中进行实现。

2024-06-28 16:15:41 166

原创 c++基础:11.继承

派生类拥有基类的所有东西,并实现了新的方法。

2024-06-26 18:04:57 140

原创 c++基础:10析构函数

对象销毁时,调用析构函数。

2024-06-26 17:47:50 159

原创 c++基础:9.构造函数&拷贝构造函数

报错1:在声明了含参数构造函数后,默认构造函数不会生成,除非显式声明。

2024-06-23 18:46:57 204

原创 c++基础:8.枚举

Leve 不是命名空间,这个枚举存在与Demo中,所以要使用Demo::ERROR。A默认值是0,B默认值1,C默认值2,以此类推。枚举就是某一组值的集合,枚举值是一个整数。

2024-06-23 18:19:05 93

原创 c++基础:7.类与static

类内部使用static,表示这部分内存是这个类的所有实例所共享的。也就是不管实例化多少类对象,static修饰的变量只有一个实例。build是不通过的,因为链接的时候会发现test.cpp和demo.cpp这两个编译单元都有fun这个函数。类外使用static修饰的符号,在链接(link)阶段是局部的,只对定义它的编译单元(.obj)可见。static修饰的变量或方法,链接器不会在这个编译单元(cpp)外找它的定义。1.所有类的实例对象,共享static修饰的变量。2.静态方法不能访问非静态变量。

2024-06-23 17:47:48 236

原创 c++基础:6.引用

【代码】c++基础:6.引用。

2024-06-21 18:59:20 187

原创 c++基础:5.指针及其操作(待补充)

指针就是一个整数,存放一个内存地址

2024-06-21 16:29:36 76

原创 vs工程目录设置

输出目录:中间目录:

2024-06-21 15:54:57 81

原创 c++基础:4.头文件

防止把一个头文件多次include到一个cpp中。

2024-06-21 14:42:39 190

原创 c++基础:3.了解链接器的工作

理解编译和链接的过程,不要重复定义符号。

2024-06-20 17:53:21 141

原创 c++基础:2.了解编译器的工作

然后按ctrl+F7编译demo.cpp,可以在debug目录中看到生成的demo.i文件。图示编译成功,证明,最后一段代码 #inldue"test.h"相当于“}”每个cpp文件都是一个编译单元,都会被编译器编译成一个obj。打开iostream文件,读取内容,复制到demo文件中。然后去main函数所在的cpp文件中,实现如下代码。这个文件中只有一个"{"如果对预处理命令进行设置。打开看到,}插入进来了。

2024-06-20 16:53:23 282

原创 c++基础:1.预处理指令(#include)

c++基础

2024-06-20 15:36:29 155

空空如也

空空如也

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

TA关注的人

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