c++
文章平均质量分 88
"爱"编程的小朋友
未来可期
展开
-
【c++】浅析new和delete关键字
new和delete是在c++中用来动态开辟和释放内存的关键字;这就不得不提起在c中经常使用的malloc函数和free函数开辟和释放内存;目录一、那么,首先回顾一下malloc和free的用法定义和特点:二、接下来,我们看看c++中new和delete关键字的定义和特点;三、那么,我们来看一下new和delete的具体使用:四、重定位new:一、那么,首先回...原创 2018-11-30 22:48:47 · 694 阅读 · 0 评论 -
【c++】c++三大特性之——多态
c++三大特性分别为封装继承和多态,多态的本质是我们的接口复用。在多态的研究中,我一般是以动多态为主.。也就是在运行阶段才能确定函数调用。实现动多态一般采用虚函数,那实现虚函数 一般用的是virtaul关键字。同时,也包括我们的纯虚函数,虚析构等等。原创 2019-08-08 14:02:11 · 359 阅读 · 0 评论 -
【c++】多继承和虚继承
一、关于多继承 菱形继承:指的是B继承A,C继承A,D继承B和C。下图是菱形继承的过程,以及各类的简单的内存布局。菱形继承存在的问题:间接基类的数据会出现多份导致访问出错,并且存在内存浪费;我们可以利用虚继承来解决这一问题。二、虚继承虚继承是面向对象编程中的一种技术,是指一个指定的基类,在继承体系结构中,将其成员数据实例共享给也从这个基类型...原创 2019-08-08 16:24:00 · 440 阅读 · 0 评论 -
【c++】浅拷贝、深拷贝和写实拷贝技术
本文将写时拷贝、浅拷贝和深拷贝进行对比。利用string类来进行解释。一、浅拷贝和深拷贝1、浅拷贝浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。缺陷:浅拷贝,当类里面有指针对象时,拷贝构造和赋值运算符重载都只进行值拷贝(浅拷贝),两个对象指向同一块内存,对象销毁时该空间被释放了两次,因此程序崩溃。释放的时候原来的指针会对该内存块进行释放,当新的指...原创 2019-08-10 11:10:24 · 271 阅读 · 0 评论 -
【c++】设计模式——简单工厂模式、工厂模式和抽象工厂模式
Factory模式的两个最重要的功能:(1)定义创建对象的接口,封装了对象的创建;(2)使得具体化类的工作延迟到子类当中;(一)简单工厂模式简单工厂模式是需要在工厂类中做判断,从而创造相应的产品,当增加新产品时,需要修改工厂类。简单工厂模式的结构图:Factory Pattern是我们的工厂类,它里边有n多条生产线,每条生产线对应不同的类,生产不同的东西。对于用户,用户...原创 2019-08-20 13:40:31 · 321 阅读 · 0 评论 -
【c++】设计模式——观察者模式
三、Observe模式(观察者模式)Observe模式分为观察者和监听者两种角色。观察者:观察事件;并且通知对于该事件感兴趣的监听者;(也就是两件事,一是注册事件、regsitermessage;二是发布事件,handlemessage);监听者:处理事件;Observe的一个实例model/view/control(MVC)在系统开发架构设计中有着很重要的地位和意义,MVC实现了...原创 2019-08-20 13:42:55 · 257 阅读 · 0 评论 -
【c++】浅拷贝、深拷贝和写时拷贝
本文将写时拷贝、浅拷贝和深拷贝进行对比。利用string类来进行解释。一、浅拷贝和深拷贝1、浅拷贝浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。浅拷贝,当类里面有指针对象时,拷贝构造和赋值运算符重载都只进行值拷贝(浅拷贝),两个对象指向同一块内存,对象销毁时该空间被释放了两次,因此程序崩溃。释放的时候原来的指针会对该内存块进行释放,当新的指针再进...原创 2019-08-25 20:15:30 · 223 阅读 · 0 评论 -
【C++】设计模式之——单例模式
保证一个类仅有一个实例对象,并且提供一个访问它的全局访问点,并且使用静态数据成员来表达这唯一的一个对象。可以类比于windows的任务管理器,无论多少次打开,始终只显示一个窗口。一、实现单例模式需要注意的点: (1)屏蔽构造和拷贝构造函数; (2)在类中提供一个接口生成唯一的对象,不能返回类类型; (3)不能依赖对象调用;...原创 2019-08-12 19:48:30 · 281 阅读 · 0 评论 -
【C++】class和struct的区别
语法上,class和struct做类型定义时只有两点区别:默认继承权限,如果不指定,来自class的继承默认是按照private继承处理,来自struct的继承默认是按照public继承处理; 成员的默认访问权限:class默认是private,struct默认的是public; “class”这个关键字还用于定义模板参 数,就像“typename”。但关键字“struct”不用于定义模板...原创 2019-10-02 13:05:02 · 287 阅读 · 0 评论 -
【c++】c++三大特性之——继承
了解到c++的面向对象的编程思想以及它的三大特性封装、继承、多态后,本文主要讲述他的继承这一特性。目录1、了解继承2、继承的本质3、继承的内容4、继承的写法5、继承与派生的关系6、派生类(子类)的内存布局7、派生类对象的构造析构8、基类中不同访问限定符下的成员以不同继承方式继承后再派生类中的访问限定9、类与类的关系10、基类或派生类指针或引用的相互指向或...原创 2019-07-27 15:18:27 · 212 阅读 · 0 评论 -
【c++】函数模板
1、了解函数模板 可以说模板是产生代码的代码;函数模板: Template <typename T,……>T 函数名(T a,T B……){ 模板体;}2、函数模板的编译过程 编译定义点,模板头部; 调用点编译——模板函数;3、模板的实例化过程模板的实例化...原创 2019-07-27 11:22:46 · 319 阅读 · 0 评论 -
【c++】类和对象(一)——基础介绍
c++是c语言的继承,是一种面向对象的计算机程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。目录一、首先我们来明确什么叫做面向对象,二、c++所具有的三大特征:封装、继承、多态三、访问限定符四、this指针(thiscall调用约定)五、成员方法的实现:六、对象的生成和销毁一、首先我们来明确什么...原创 2018-12-01 00:14:10 · 322 阅读 · 0 评论 -
【c++】类和对象(二)——类中的默认函数
在本文中介绍主要关于类中的六个默认的函数。分别是构造函数、析构函数、拷贝构造函数、赋值运算符重载、取地址运算符重载以及const修饰的取地址运算符的重载函数等。原创 2019-01-08 18:50:24 · 306 阅读 · 0 评论 -
【c++】static和const修饰成员方法和成员变量
目录const修饰的成员变量和成员方法一、修饰成员变量称为常成员变量二、修饰成员方法称为常方法static关键字修饰c++类中的成员变量和成员方法一、修饰成员变量二、修饰成员方法const修饰的成员变量和成员方法一、修饰成员变量称为常成员变量 常成员变量一定要初始化,在构造函数的初始化列表中初始化;二、修饰成员方法称为常方法 ...原创 2019-01-19 20:34:45 · 546 阅读 · 0 评论 -
【c++】智能指针——实现内存的自我回收机制
目录一、了解智能指针 1、智能指针:c++的自我内存回收机制的实现 2、 智能指针是面向对象的指针,以对象的形式做指针的事;二、介绍几种智能指针 1、auto_ptr2、scope_ptr3、shared_ptr强智能指针 带有引用计数的智能指针4、weak_ptr 弱智能指针 可以解决强智能指针相互引用的问题一、了解智能指针 ...原创 2019-02-22 21:11:25 · 2530 阅读 · 0 评论 -
【c++】从以下八个方面浅谈c/c++的区别
C和C++的简单区别,C是一门面向过程的语言,抽象化的通用程序设计语言,重点在于数据结构和算法的实现,广泛用于底层开发,而C++是一种面向对象的计算机程序设计语言,它支持过程化程序设计,数据抽象,面向对象程序设计,泛型设计等多种程序设计风格。C++可以说是c的继承,它进一步完善并扩充了C,但是切记C++是C的继承,C++不能完全代替C。本文将从以下八个方面浅谈关于C/C++的区别。...原创 2019-07-23 18:24:04 · 1449 阅读 · 0 评论 -
编译链接原理——总述+编译阶段+链接阶段+运行原理
总述: 在平常的应用程序开发过程中,我们很少需要关注编译和链接的过程,因为通常都是在集成的开发环境下运行,因此一般编译和链接都是一步完成,通常将这种编译和连接合并到一起的过程称为构建。这样虽然简便,但是在这整个过程中,有时出现问题时,我们只能看到问题的表现,而很难看清本质性问题,所以对于这些一步完成的操作背后到底是怎样的,我们需要深入了解,方便在以后遇到问题能后看清本质,快速解决...原创 2018-11-10 20:52:10 · 3972 阅读 · 0 评论 -
函数的堆栈调用
一、研究问题与答案1.形参开辟内存吗?由谁开辟?答案:开辟内存;并且由调用方开辟;2.形参的入栈顺序答案:从右向左入栈,(解决可变参数的问题);实参与形参匹配类型是从左向右匹配;3.返回值由谁带出?答案:一般由寄存器带出;4.被调用方结束,如何知道回退到调用方栈帧上?答案:调用方栈底指针的地址保存到被调用方栈底指针;5.函数调用结束,如何知道应该执行下一条指令?...原创 2018-11-13 15:52:33 · 205 阅读 · 0 评论 -
【c++】const的使用(包括与引用、指针、形参的结合等)
目录一、const在c语言和c++中的区别 二、const修饰的变量称为常量,具有以下的特点:三、const与指针、引用的结合(一)const与指针的结合(二)const与引用的结合:四、const、引用与形参的结合五、引用、指针与返回值的结合以及接受返回值时的使用一、const在c语言和c++中的区别 在c语言的学习中...原创 2018-11-28 23:28:52 · 1511 阅读 · 0 评论 -
【C++】弱智能指针weak_ptr详解
在最早有介绍关于智能指针的博文,但并未深入探讨弱智能指针的存在,这是简单提到它是来配合强智能指针一起使用,且不可以单独使用,所以对于弱智能指针它的作用就是解决强智能指针之间的相互引用而存在的。https://blog.csdn.net/IT_Mitchell/article/details/86615669那,本文主要介绍关于弱智能指针weak_ptr的一些东西;关于weak_ptr,we...原创 2019-10-09 20:32:40 · 824 阅读 · 0 评论