c++基础学习
季科
这个作者很懒,什么都没留下…
展开
-
P1439 【模板】最长公共子序列
https://www.luogu.com.cn/problem/P1439题目描述给出1-n的两个排列P1和P2,求它们的最长公共子序列。输入格式第一行是一个数n,接下来两行,每行为n个数,为自然数1-n的一个排列。输出格式一个数,即最长公共子序列的长度输入输出样例输入 #1复制5 3 2 1 4 51 2 3 4 5输出 #1复制3...原创 2020-02-07 13:58:46 · 352 阅读 · 0 评论 -
<<的重载
这里是输出运算符的重载,我的上一篇c++的文章写的是关于+号的重载,本质是A+B,调用的是A.operator+(B),同时,我们可以通过友元来进行操作运算符,这里我们可以确定+号左右两边的操作对象的属性,这也是我们介绍的第一种重载第一种加载#includeusing namespace std;class Person{ private: int age; p转载 2016-05-20 21:25:58 · 3035 阅读 · 0 评论 -
c++基础学习之深拷贝
这篇文章谈谈c++的深拷贝的问题,这个问题其实涉及到的是c++里面的储存问题,一般来说我们的变量是储存在栈中的,堆是程序员可以控制分配的内存,而栈是系统为我们分配好的,在c++默认的拷贝中,只是单纯的进行了值的拷贝,当我们定义的对象有堆中的内容的时候,我们赋值过去的对象只是指向了栈中对应堆的地址,如果我们调用了之前对象的析构函数(这里顺便说一句,析构函数不可以重载),那么我们后面那个赋值的对象就会转载 2016-05-21 00:02:27 · 2013 阅读 · 0 评论 -
c++中成员初始化列表的问题
c++中提供了成员列表初始化的方法,我们知道const变量一般是在变量申明的时候就初始化,但是可以通过成员变量的方法动态的改变const变量的值,同时如果类的成员变量是引用,那么我们也必须通过成员列表初始化的方法来初始化,这里我从c++primer里面摘取了成员列表初始化的规则1,这种格式只能用于构造函数2,必须使用这种格式来初始化非静态const数据成员3,必须使用这种格式来初始化引转载 2016-05-21 14:30:08 · 916 阅读 · 0 评论 -
c++通过指针实现队列
这篇博文里面说的是c++中通过指针来实现队列,本身思想是很简单的,也没有什么太多需要说的,只需要注意一些细节的问题,其实,我想说的是,作为面向对象,我们应该从调用类中存在的方法去思考我们应该定义哪些变量,如果这样思考应该就变得简单了,这里我再画入队和出队的图片,并进行阐述,代码是可以直接运行的,包括一些小的知识点也进行了很好的阐述,第1张图片是节点的删除,temp首先是头节点,然后我们将头转载 2016-05-21 16:58:52 · 3835 阅读 · 0 评论 -
c++之继承1
终于到了面向对象的三大特征之一的继承了,这里只是简单的写了个继承的demo,并没有实现什么太大的功能,也没有太多的语法,这里需要注意一点的就是,我的类的成员都是私有成员,之前我的一篇文章写了成员列表初始化的一些规则,然后这里需要添加一个规则就是,如果想通过派生类调用基类的构造函数,那么必须通过成员列表初始化,如果成员列表初始化没有显示的调用构造函数,那么就会调用基类的无参构造函数,然后就没有太多需转载 2016-05-21 22:12:48 · 320 阅读 · 0 评论 -
c++继承2虚函数
这篇文章谈谈c++中的虚函数,在我看来如果是单纯的通过对象来访问的话,虚函数和一般的函数是没有什么区别的,当然这里没有包括纯虚函数,如果我们只通过对象来访问的话,那么这也就缺少了c++的动态特性了,当我们通过指针或者引用来访问的时候,我们可以发现,我们可以发现,我们会去找派生类中的函数,我想这也是为什么java中写的方法总是会覆盖父类的方法。代码中我对引用和指针都做了例子:代码://这段代转载 2016-05-22 00:06:30 · 556 阅读 · 0 评论