- 博客(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隐式转换与explicit
b可以正常初始化,a不可以。因为这条语句做了两次隐式类型转换,一次是const char *转为string,再一次是string转为Demo。
2024-07-11 23:55:20
192
原创 c++基础:15.const与mutable
编译是不会通过的,因为常量引用表示不会修改引用对象,而GetX()不是常函数,所以是可以修改对象的,所以必修要在函数名后面加const。在方法名后面加const,表示不会修改这个类中的任何东西。mutable修饰的变量,可以在常函数中修改。const与常量引用。
2024-07-11 17:22:16
86
原创 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++基础: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++基础:2.了解编译器的工作
然后按ctrl+F7编译demo.cpp,可以在debug目录中看到生成的demo.i文件。图示编译成功,证明,最后一段代码 #inldue"test.h"相当于“}”每个cpp文件都是一个编译单元,都会被编译器编译成一个obj。打开iostream文件,读取内容,复制到demo文件中。然后去main函数所在的cpp文件中,实现如下代码。这个文件中只有一个"{"如果对预处理命令进行设置。打开看到,}插入进来了。
2024-06-20 16:53:23
282
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人