C++学习
文章平均质量分 88
记录C++学习
Dilute816
这个作者很懒,什么都没留下…
展开
-
11day-C++list容器使用
list的文档介绍。原创 2024-07-30 23:18:24 · 440 阅读 · 0 评论 -
10day-C++ 学习vector模拟实现(详细版)
reverse的模拟实现,记录原来的vector容器中的capacity与size(),保存旧值所对应的size大小,方便数据的导入。可能有些函数的模拟实现还没有实现,但我们要学会举一反三,那么实现该容器其他函数也就没有什么问题了。当用范围for遍历数组时,要用到迭代器的begin(),与end(),所以也要自己实现。这里的T(),同resize中的道理相同。,也就是要在多出来的size。,而需要被赋值的对象,同insert差不多。原创 2024-07-29 11:07:06 · 496 阅读 · 0 评论 -
C++ 异常
一个项目中如果大家随意抛异常,那么外层的调用者基本就没办法玩了,所以实际中都会定义一套继承的规范体系。这样大家抛出的都是继承的派生类对象,捕获一个基类就可以了//服务器开发中通常使用的异常继承体系public:, _id(id){}protected:int _id;return str;原创 2024-09-13 15:16:30 · 1057 阅读 · 0 评论 -
09-day vector的使用
因此删除vector中。原创 2024-07-28 21:52:23 · 735 阅读 · 0 评论 -
09day-C++学习STL string类的使用
**原创 2024-07-28 09:03:26 · 654 阅读 · 0 评论 -
08day_C++模板(初阶)
class 类模板名// 类内成员定义//类模板public:, _size(0){}~Stack()private:T* _array;//类外生命成员函数也要加模板,否则编译器不认识//直接new异地扩,再拷贝过来//释放原来的空间++_size;原创 2024-07-18 09:14:05 · 791 阅读 · 0 评论 -
07day-C++内存管理
int main()//new/delete和malloc/free最大的区别就是new/delete对于【自定义】类型//除了开空间还会调用构造与析构函数//调用构造//调用析构//内置类型是几乎是一样的free(p3);delete p4;//数组中的每个元素都会调用一次构造与析构free(p5);delete[]p6;return 0;注意。原创 2024-07-17 08:53:35 · 1300 阅读 · 0 评论 -
06day-C++类和对象(下)
• 尽量使⽤初始化列表初始化,因为那些你不在初始化列表初始化的成员也会⾛初始化列表,如果这个成员在声明位置给了缺省值,初始化列表会⽤这个缺省值初始化。• 之前我们实现构造函数时,初始化成员变量主要使⽤函数体内赋值,构造函数初始化还有⼀种⽅式,就是初始化列表,初始化列表的使⽤⽅式是以⼀个冒号开始,接着是⼀个以逗号分隔的数据成员列表,每个"成员变量"后⾯跟⼀个放在括号中的初始值或表达式。• 引⽤成员变量,const成员变量,没有默认构造的类类型变量,必须放在初始化列表位置进⾏初始化,否则会编译报错。原创 2024-07-14 13:33:20 · 1327 阅读 · 0 评论 -
05day--C++日期类的实现与取地址运算符的重载
• const实际修饰该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进⾏修改。const 修饰Date类的Print成员函数,Print隐含的this指针由 Date* const this 变为 const Date* const this。• 将const修饰的成员函数称之为const成员函数,const修饰成员函数放到成员函数参数列表的后⾯。取地址运算符重载分为普通取地址运算符重载和const取地址运算符重载,⼀般这两个函数编译器⾃动。⽣成的就可以够我们⽤了,不需要去显⽰实现。原创 2024-07-13 19:27:27 · 485 阅读 · 0 评论 -
04day-C++类与对象(中)
析构函数与构造函数功能相反,析构函数不是完成对对象本⾝的销毁,⽐如局部对象是存在栈帧的,函数结束栈帧销毁,他就释放了,不需要我们管,C++规定对象在销毁时会⾃动调⽤析构函数,完成对象中资源的清理释放⼯作。我们不写,编译器默认⽣成的构造,对内置类型成员变量的初始化没有要求,也就是说是是否初始化是不确定的,看编译器。构造函数是特殊的成员函数,需要注意的是,构造函数虽然名称叫构造,但是构造函数的主要任务并不是开空间创建对象(我们常使⽤的局部对象是栈帧创建时,空间就开好了),⽽是对象实例化时初始化对象。原创 2024-07-12 18:16:46 · 1899 阅读 · 0 评论 -
03day-C++类和对象
• class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的⽅法或者成员函数。• 为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如成员变量前⾯或者后⾯加_ 或者 m开头,注意C++中这个并不是强制的,只是⼀些惯例,具体看公司的要求。原创 2024-07-11 15:13:21 · 780 阅读 · 0 评论 -
02day-C++学习(const 指针与引用的关系 inline nullptr)
注意事项• 可以引⽤⼀个const对象,但是必须⽤const引⽤。const引⽤也可以引⽤普通对象,因为对象的访问权限在引⽤过程中可以缩⼩,但是不能放⼤。• 不需要注意的是类似 int& rb = a3;这样⼀些场景下a3的和结果保存在⼀个临时对象中, int& rd = d 也是类似,在类型转换中会产⽣临时对象存储中间值,也就是时,rb和rd引⽤的都是临时对象,⽽C++规定临时对象具有常性,所以这⾥就触发了权限放⼤,必须要⽤常引⽤才可以。原创 2024-07-09 23:01:20 · 600 阅读 · 0 评论 -
01day C++初入学习
在C/C++中,变量、函数和后⾯要学到的类都是⼤量存在的,这些变量、函数和类的名称将都存在于全局作⽤域中,可能会导致很多冲突。使⽤命名空间的⽬的是对标识符的名称进⾏本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。c语⾔项⽬类似下⾯程序这样的命名冲突是普遍存在的问题,C++引⼊namespace就是为了更好的解决这样的问题int main()// 编译报错:error C2365: “rand”: 重定义;以前的定义是“函数”return 0;原创 2024-07-08 18:23:48 · 724 阅读 · 1 评论