c++的进程
dpf_xa_ca
初出茅庐
展开
-
《 构造/析构/内联/构造/静态成员函数 》——在什么情况下是否可以是虚函数?
**1. 构造函数为什么不能为虚函数?a. 存储空间角度: 虚函数的调用需要虚函数表指针,而该指针存放在对象的内容空间中,需要调用构造函数才可以创建他的值,否则即使开辟了空间,则虚表指针为随机值,不会找到构造函数;若构造函数声明为虚函数,那么由于对象还未创建,还没有内存空间,更没有虚函数表地址用来调用虚函数——构造函数了。b. 使用上: 从实现上看,vbtl在构造函数调用后才建立,因而构造函数不可能成为虚函数;虚函数主要是实现多态,在运行时才可以明确调用对象,根据传入的对象类型,来调用函数当一原创 2020-05-26 13:07:22 · 229 阅读 · 0 评论 -
c++ List的模拟实现 主要包括:《迭代器的实现》《const的迭代器》《增,删,查,找》《(常/const)赋值》等等
List的模拟实现:原创 2019-04-15 14:21:42 · 226 阅读 · 0 评论 -
c++ list modifiers《列表修饰符/调试器》
一. list modifiers<这个实现也是非常的重要的,所以要好好看下面的代码>1,实现头增,头删,,尾增,尾删void PrintList(list<int>& l){ for (auto& e : l) { cout << e << " "; } cout << endl;}//push_b...原创 2019-04-11 23:22:33 · 208 阅读 · 0 评论 -
c++ List 接口的基本实现 主要包含《List的使用》《iterator的使用》《capacity》《element access》《modifiers》《迭代器失效》
一 ,List的介绍和使用1。 List的介绍list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,已让其更简单高效。与...原创 2019-04-10 23:14:15 · 230 阅读 · 0 评论 -
c++的课前准备 和 如何学习 《刚开始学习c++》
通过学习C语言之后,原创 2019-04-11 23:42:33 · 323 阅读 · 0 评论 -
c++ Vector 模拟实现 常用接口完整版 《 增 》《 删 》《 查 》《 改 》
一。模拟实现原创 2019-04-10 00:03:39 · 273 阅读 · 0 评论 -
c++ Vector《二》 主要包括:《Vector的增删查找接口实现》《迭代器失效的问题》《常见的迭代器失效的场景》
一。Vector的增删查找(1)push_back() / pop_back();下来我们看一下的代码:int main(){ int a[] = { 1, 2, 3, 4, 5 }; vector<int> v(a, a + sizeof(a) / sizeof(int));vector<int>::iterator it = v.begin(); ...原创 2019-04-09 00:12:59 · 205 阅读 · 0 评论 -
c++ Vector《一》 主要包含《 Vector的介绍 》《Vector iterator的使用》《Vector 中(capacity)(reserve)(resize)实现及三者的区别》
一 。vector介绍和使用1.Vector的介绍Vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为...原创 2019-04-08 22:41:47 · 254 阅读 · 0 评论 -
c++类和对象(下篇)《第二部分》 主要包括:《C++11 的成员初始化新玩法》《友元函数》《友元类》《内部类》《再次理解封装》
1.C++11 的成员初始化新玩法c++11在定义变量成员的时候,可以在定义直接初始化。看下面的一段代码:class B{public: B(int b = 0) :_b(b) {}public: int _b;};class A{public: void Print() { cout << _a << endl; cout &l...原创 2019-04-08 13:06:53 · 174 阅读 · 0 评论 -
c++中的类和对象(下篇)《第一部分》 主要包括:《再谈构造函数》《初始化列表》《 explicit关键字》《static成员》
根据前两次的内容,我们已经了解c++是面对对象的,而且大概了解了类中有什么,现在,我们再看看类和对象中还有什么需要我们知道的,因为,这次内容比较多,所以我准备分两次写,这样不至于看到时太多了,还没看就已经厌烦了,下面,正式,进入我们这次内容。一,再谈构造函数1 构造函数体的赋值在创建对象的时候,系统会自己调用构造函数,给对象中的变量一个合适的初始值。比如下面的一段代码: #includ...原创 2019-04-05 19:58:57 · 469 阅读 · 0 评论 -
c++《STL简介》 主要包括:《STL的重要性》《如何学习STL》《STL的缺陷》
一.什么是STL?STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包括数据结构与算法的软件框架二。STL的版本原始版本Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本,本着开源精神,他们声明允许任何人任意运用、拷贝、修改、传播、商业使用这些代码,无需付费。唯一的条件...原创 2019-04-05 16:01:31 · 663 阅读 · 0 评论 -
c++ 《 模板 》 主要包含:《泛型编程》《函数模板》《类模板》
首先,我们先由模板的类型说起。一 。泛型编程第一个问题,我们如何写一给通用的交换函数?#include<iostream>using namespace std;void Swap(int& a, int& b){ int tmp = a; a = b; b = tmp;}void Swap(double& a, double&am...原创 2019-04-03 23:32:32 · 243 阅读 · 0 评论 -
c++ String 《string的模拟实现》《string类中的深浅拷贝》《string的常用接口说明》《为什么要学习string》
一。为什么我们要学习string?1.C语言中的字符串C语言中,字符串是以’\0’结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。2.string类的常用接口说明,(1)string类对象的常用构造函数名称 ...原创 2019-03-25 23:44:39 · 258 阅读 · 0 评论 -
c/c++《内存管理》完整版 主要包括:《c/c++的内存分布》《c/c++的内存管理》《new和delete的实现原理》《常见面试题 & 内存泄漏等》
一,c/c++的内存分布二. C语言中动态内存管理方式malloc /calloc /ralloc 和 free;原创 2019-04-02 13:50:12 · 344 阅读 · 0 评论 -
c++用类和对象来写 年,月,日 简单的 加,减以及比较大小遍历(完整代码)
经过前面的两篇博客,我们已经可以粗略的使用《构造函数》,《析构函数》,《拷贝构造函数》以及《赋值运算符的重载》来实现一个时间类的&lt;&lt;增,删&gt;&gt;,《比较大小两个日期的大小》,《一个日期减一个日期得到一个新的日期》,《一个日期减一个天数的大小》,《一个日期加一个天数》等等的简单实现,现在就来看一看下,这是在c++里面实现的。首先,如果感觉自己能力比较强的同学,可以自己去实现一...原创 2019-01-23 14:18:34 · 855 阅读 · 0 评论 -
c++中类和对象(中篇)包含《构造函数》,《析构函数》,《拷贝构造函数》,《赋值操作符的重载》等
学过之前的类和对象前篇之后,下来就学到了类的6个默认成员函数了,《构造函数》,《析构函数》,《拷贝构造函数》,《赋值操作符的重载》,《const成员函数》,《取地址及const取地址操作重载》,下来就一个一个看,----》《构造函数》《-----**构造函数:**是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,保证每个数据成员都有 一个合适的初始值,并且在对象的生命...原创 2019-01-22 14:48:23 · 277 阅读 · 0 评论 -
c++中的类与对象(上篇) :主要包含 "类的访问限定符及封装" "结构体的内存对齐“ “this指针”
类的引用C语言是面向《过程》的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面《对象》的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。在C语言中,我们把一类的东西放在一个结构里面,用《struct》的结构来写,那么既然c++是C语言的衍生物,那么c++用什么来写,在c++中我们把《struct》换成《class》结构,用法和c语言中的差不多,...原创 2019-01-16 20:40:15 · 187 阅读 · 0 评论 -
c++的继承 《进阶二》《继承与静态成员》《复杂的菱形继承及菱形虚拟继承》《虚拟继承解决数据冗余和二义性的原理》 加《笔试面试题》
由于上面的内容比较多,所以我觉的应该写两篇内容,要不太多了,容易看烦了,所以我们再写一篇博客,在一起学习一下。六. 继承与静态成员基类定义了static静态成员,则整个继承体系里面只有一个这样的成员。无论派生出多少个子类,都只有一个static成员实例 。我们看一下下面的代码;#include<iostream>#include<string.h>using ...原创 2019-03-31 20:00:17 · 213 阅读 · 0 评论 -
c++的多态《二》——主要包括:《多态的原理》《虚函数表》《动态绑定和静态绑定》
《一》多态的原理(1)虚函数表首先,在面试的时候,容易被问道sizeof(Base)是多大?class Base{public: virtual void Func1() { cout << "Func1()" << endl; }private: int _b = 1;};int main(){ Base b; b.Func1(); r...原创 2019-05-03 15:12:42 · 168 阅读 · 0 评论 -
c++多态《三》——主要包括:《单继承和多继承的虚函数表》《多态常见的面试题》
(1)单继承中的虚函数表原创 2019-05-03 18:05:33 · 184 阅读 · 0 评论 -
c++的多态《一》 主要包括:《多态的概念》《多态的定义及实现》《重载,重写,重定义的对比》《不规范的重写及析构函数的重写问题》《抽象类—纯虚函数》《关键字final》
模板原创 2019-04-25 12:31:24 · 234 阅读 · 0 评论 -
C++ 异常——主要包括:《 异常概念 》《 异常的使用 》《 异常的重新抛出 》《 异常安全 》《 自定义异常体系 》《 异常的优缺点 》
《一》C语言常用的处理错误方式一般就是 “assert”等,使用起来比较难受,就比如是在我们用C语言写二叉树,或者链表的时候,就是常用的assert来断言,这样程序出错就回报错,但是直接就会终止程序,不太好用。实际中C语言基本都是返回错误码的方式,来处理错误,部分情况使用终止程序处理出现严重的代码。《二》c++的异常概念异常是一种解决错误的方式,当一个函数无法处理现在问题,就可以抛出异常,...原创 2019-05-14 03:41:26 · 212 阅读 · 0 评论 -
C++ 智能指针——主要包括:《为什么需要智能指针》《RALL的使用原理》《auto,unique,share三者联系和区别,以及三者的实现》《RALL扩展训练》
《一》为什么需要智能指针?在我们上一节课 异常 哪一节课的时候,我们知道了之前我们提到的问题,为下面的两个问题,我们还没有解决。malloc出来的空间,没有进行释放,存在内存泄漏的问题。异常安全问题。如果在malloc和free之间如果存在抛异常,那么还是有内存泄漏。这种问题就叫异常安全。《二》智能指针的使用及原理(2.1)RAIIRAII(Resource Acquisition...原创 2019-05-16 03:52:01 · 605 阅读 · 0 评论 -
C++的类型转换——《static_cast》《reinterpret_cast 》 《const_cast》《dynamic_cast》
《一》C语言的类型转换隐式类型的转换,显示类型的转换,#include<iostream>#include<stdlib.h>using namespace std;int main(){ int i = 1; //隐式类型转换,相关类型, double d = i; printf("%d,%.2f\n", i, d); int* p = &...原创 2019-05-16 04:18:45 · 127 阅读 · 0 评论 -
c++ 搜索二叉树——主要包括:《搜索二叉树的概念》《增删查的分析和解题思路》《完整实现代码》《搜索二叉树的性能分析》
经过我们上一篇博客的书写,我们可以了解到 map / multimap / set / multiset底层使用搜索二叉树实现的,那么搜索二叉树又是什么呢?下面我们就走进搜索二叉树的世界了解一下。《一》搜索二叉树的概念二叉搜索树又称二叉排序树,它可能是一个空树,也有可能具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值.若它的右子树不为空,则右子树上所有节点...原创 2019-05-21 15:23:04 · 188 阅读 · 0 评论 -
C++ AVL树——主要包括:《AVL树的介绍》《节点的定义》《AVL树的插入(左右单旋 + 双旋)》《AVL树的实现代码》《AVL树的性能》
在前面,我们已经实现过了过了搜索二叉树,在不是《一》AVL树的介绍二叉树,原创 2019-05-27 14:26:41 · 123 阅读 · 0 评论 -
c++ map/multimap 主要包括:《map的介绍及接口的使用》《multimap的介绍及接口的使用》《map与multimap的区别》
----》set/multiset的使用《----《二》map首先,我们学习map之前,和上面的set是一样的,我们要有查文档的习惯,下面,如果需要文档的,点这里——》》map文档的链接《《——【1】map的介绍map是关联容器,它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素。在map中,键值key通常用于排序和惟一地标识元素,而值value中存储与此...原创 2019-05-31 00:10:38 · 559 阅读 · 0 评论 -
C++ set / multiset 主要包括:《set的介绍与使用》《multiset的介绍和使用》《set与multiset的区别》
《一》map原创 2019-05-29 02:39:10 · 145 阅读 · 0 评论 -
c++的继承 《进阶一》 《继承的概念》《继承的定义》《继承基类成员访问方式的变化》《继承的中的作用域》《派生类的默认成员函数》《继承和友元》
我相信,如果当你点开这篇博客,说明你已经进入了c++的部分了,如果是刚刚开始学习继承的同学,我建议还是先看一下,我写的类和对象,先要了解一下,这里是进阶部分,害怕直接看同学有一点看懂。类和对象:https://mp.csdn.net/mdeditor/86511762#好了,还是直接进入我的学习继承进阶的部分一. 《继承的概念及定义》(1) 继承的概念;继承(inheritance)机...原创 2019-03-24 23:08:29 · 280 阅读 · 2 评论