c++
文章平均质量分 92
注重讲解c++基础知识,希望有用
Victoria.a
复习材料
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c++入门
定义命名空间,需要使用到。原创 2025-01-10 20:10:36 · 1098 阅读 · 13 评论 -
类与对象(上)
比如:之前在数据结构初阶中,用。原创 2025-01-24 20:39:01 · 929 阅读 · 6 评论 -
类与对象(中)
如果一个类中什么成员都没有,简称为空类。空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数。这六个默认成员函数用户不写编译器会自动生成,下边我来一一讲解对于以下Date对于Date类,可以通过Init公有方法给对象设置日期,但如果每次创建对象时都调用该方法设置信息,未免有点麻烦,那能否在对象创建时,就将信息设置进去呢?是一个,以保证每个数据成员都有 一个合适的初始值,并且。原创 2025-01-25 23:07:18 · 1402 阅读 · 10 评论 -
类与对象(下)
记住,c++规定某些类型比如const和引用必须在定义的时候初始化,初始化列表就是定义的地方,Date d1是定义对象的地方,初始化列表是定义每个成员的地方,因为定义意味着开空间,开了空间才能使用它们。内部类是一个独立的类,它不属于外部类,更不能通过外部类的对象去访问内部类的成员。友元函数很简单,就是在类内声明,在类外可以用这个类的私有成员,并且友元函数是实现在全局的,没有this指针。静态成员变量在类内声明,在类外定义,(因为要走初始化列表,静态成员是类每个对象的公有,不能走初始化列表)原创 2025-01-26 18:05:00 · 1227 阅读 · 9 评论 -
内存管理(new和delete)
3. malloc申请空间时,需要手动计算空间大小并传递,new只需在其后跟上空间的类型即可,如果是多个对象,[]中指定对象个数即可。4. malloc的返回值为void*, 在使用时必须强转,new不需要,因为new后跟的是空间的类型。5. malloc申请空间失败时,返回的是NULL,因此使用时必须判空,new不需要,但是new需。1. malloc和free是函数,new和delete是操作符。2. malloc申请的空间不会初始化,new可以初始化。原创 2024-12-24 17:14:53 · 381 阅读 · 0 评论 -
模版的初步
在编译器编译阶段,对于模板函数的使用,编译器需要根据传入的实参类型来推演生成对应类型的函数以供调用。比如:当用double类型使用函数模板时,编译器通过对实参类型的推演,将T确定为double类型,然后产生一份专门处理double类型的代码,对于字符类型也是如此。原创 2024-12-24 20:27:51 · 561 阅读 · 0 评论 -
string类详解
C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可 能还会越界访问。在OJ中,有关字符串的题目基本以string类的形式出现,而且在常规工作中,为了简单、方便、快捷,基本 都使用string类,很少有人去使用C库中的字符串操作函数。原创 2025-02-02 17:11:12 · 1067 阅读 · 7 评论 -
vector容器(详解)
capacity的代码在vs和g++下分别运行会发现,原创 2025-02-02 16:04:09 · 1819 阅读 · 7 评论 -
list容器(详解)
头插,尾插,尾删是一样的,复用insert,erase逻辑就行这部分在c语言实现数据结构链表那里讲的很详细了,想看的可以看看代码样例讲解这是一个很基础的尾插和打印对象逻辑,可以用第一个迭代器打印,也可以用第二个,范围for打印(范围for底层就是迭代器,无脑替换成迭代器进行打印),可以看到*it和it++,都是我们封装成类的功劳,原理很简单前面讲过测试插入删除逻辑,可以看到不管是头插,头删,尾插,尾删都很清晰明了,clear是直接删除有效结点只剩哨兵位,所以打印不出来。原创 2025-02-03 18:01:20 · 1426 阅读 · 15 评论 -
stack和queue优先级队列(详解)
test.cpp。原创 2025-02-04 21:24:02 · 697 阅读 · 6 评论 -
c++初阶易错题(选择)
B.指针可以改变指向,引用不能,故错误C.空指针没有任何指向,删除无害,引用是别名,删除引用就删除真实对象D.引用必须初始化,所以不能为空引用,指针可以2A.引用必须初始化,必须在定义引用时明确引用的是哪个变量或者对象,否则语法错误,指针不初 始化时值为随机指向B.引用一旦定义时初始化指定,就不能再修改,指针可以改变指向C.引用必须出示化,不能出现空引用,指针可以赋值为空D.简单粗暴的引用理解可以理解为被引用变量或对象的"别名"原创 2025-03-18 17:19:22 · 1112 阅读 · 0 评论 -
模板的进阶
一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。如果模板声明和定义分离,有两个cpp文件像这种情况因为编译的时候两个cpp文件互相不知道对方“长啥样”(两个cpp各自有头文件的包含,头文件展开只有声明),Stack.cpp找不到要实例化的类型(不正常),test.cpp找不到模板的定义(正常,可以链接找地址,如果链接再找不到定义就会报错)原创 2025-02-05 01:16:11 · 1012 阅读 · 12 评论 -
c++继承
继承的概念继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。继承定义继承方式(在派生类的访问方式)总结:基类的private成员不管用什么继承,在派生类内部或者外界(main函数内部)都不能访问(mian函数内部可以用公有的成员函数)原创 2025-02-05 22:02:45 · 948 阅读 · 13 评论 -
c++多态(详解)
首先如果是普通对象,是一样快的。子类实例化出的d对象,存放的是父类的虚表指针以及成员,和自身成员,并且可以看到虚函数完成了重写,d对象中父类的虚表指针指向的虚函数表已经改变(重写了func1,func2还是原来的)从这里我们又能理解到多态的意义,只有完成虚函数表的重写,才能实现多态。是的,因为是不同的类,实例化出的对象就不一样,相同类定义的对象共享一张虚表(因为一个类不管怎么实例化对象,虚函数都是那几个),不同类定义的对象肯定用的不同虚表,因为虚函数的个数可能就不相同,如果父类子类共享虚函数表就乱套了)原创 2025-02-07 11:58:14 · 1593 阅读 · 19 评论 -
二叉搜索树
二叉树在前面C数据结构阶段已经讲过,本节取名二叉树进阶是因为:1.先铺垫二叉搜索树,而二叉搜索树也是一种树形结构2.3.,在前面讲解,且时间长容易忘4.因此本节借二叉树搜索树,对二叉树部分进行收尾总结。原创 2025-02-08 23:42:41 · 1152 阅读 · 19 评论
分享