C / C++
文章平均质量分 78
夜里的柚子
“ 在荒谬被证实以前,都只是暗室里的装饰。只有眼前亮起来了以后,才有机会彰显它的价值不是谁能决定的。”
展开
-
<1> C/C++的一些基本介绍
1 . 数据类型 1 . 1 为什么要有数据类型这个东西? 因为我们在编程的过程中可能需要对于日常的事物进行量的表达,从而使计算、逻辑操作更为方便。 比如:人数(int,10名)、时间(double,0.5分钟)、文件名(string,“test.txt”)。对于人数,我们可以进行增量操作,时间可以换算成秒,文件名可以进行截取得到文件类型。 1 . 2 数据类型的本质是什么? 我感觉。数原创 2017-09-22 10:48:29 · 354 阅读 · 0 评论 -
<9> 函 数
函数可以说是C/C++或者其他高级程序设计语言中最重要的概念之一吧。与函数相关的包括普通函数,内联函数,静态成员函数,类的成员函数,模板函数,函数指针,函数调用,友元函数,函数的声明,函数的定义,形参,实参,函数的重载 ··· 一个一个来吧。1 . 普 通 函 数普通函数一般仅仅是为了作为实现某些公式或者功能而封装起来的一段代码。我们把在函数中传递的类型参数叫做形参,传递的实际值叫做实参,形参可有原创 2018-01-17 17:11:54 · 253 阅读 · 0 评论 -
<8> 智能指针
之前在《Effective C++》中看了一些关于智能指针的内容,今天想在这里结合《C++ Primer Plus》以及自己的一些想法再复习一下,就算是巩固自己的这部分的知识。毕竟智能指针对于C++来说还是挺重要的。 1 . 问题的引出,我们先来看下边的一个程序段。 void remodel(std::string& str) { std::string* ps = new std::原创 2018-01-17 13:56:55 · 267 阅读 · 0 评论 -
<7> 深拷贝和浅拷贝
什么是深拷贝?什么又是浅拷贝? 我们来看一个问题,当我们设计好了一个类,在函数中对已知的对象进行拷贝,c++会自动调用拷贝构造函数,如果类里边没有自定义的拷贝构造函数,程序则会调用默认的拷贝构造函数。我们来看: //----------------------------------------------------------------------------------------原创 2018-01-16 15:43:31 · 272 阅读 · 0 评论 -
<6> 面向对象到底有什么(下)?
接着我们上次没有介绍完的内容,我们说OOP的三大特性,还有个特性是“多态”。乍一看,这个名字有点吓人。本篇博客将介绍“多态”是什么?为什么会用到“多态”这个特性?在哪里会用到?等这三个问题,来巩固自己对于面向对象的理解。 2.4 “多态”究竟是什么?(C++) “多态”从字面意思上来看是“多种形态”的意思,在我们的面向对象中,多态意味着基类的形态是可以多变的,通过多态可以将基类对象赋予子类的特原创 2018-01-11 22:17:13 · 222 阅读 · 0 评论 -
<3> Effective C++阅读
前段时间,阅读了《Effective C++》,深深地被作者深入浅出的介绍关于C++应该注意的地方所折服,在日常工作中,非常具有警示和指导意义。先将其中的几条条例摘抄下来,然后阐述下自己的理解,或者结合项目,聊聊自己的看法。 1 视C++为一个语言联邦 c++的编程高效编程守视状况而变化,取决于你用C++的哪一部分。 2 尽量以const、enum、inline、替换#原创 2017-12-12 19:25:09 · 172 阅读 · 0 评论 -
<5> 面向对象到底有什么(中)?
在 面向对象到底有社么(上)一文中,我们说了下关于面向对象和面向过程的区别和优劣性。在面向对象里边,也谈了下关于“面向对象三大特性”的其中一个特性“封装性”的简单理解。在这一文中,我们主要一起来了解下关于面向对象的第二个特性“继承”的理解,一起来看下“继承”到底是什么?继承到底有什么作用?以及“继承”在什么情况下会用到?继承的优点在哪里? 2.2 ”继承“到底是什么?为什么要有它这个东西? 我原创 2018-01-11 14:03:56 · 237 阅读 · 0 评论 -
<4> 面向对象到底有什么(上)?
我们很多时候在使用高级程序设计语言进行软件开发的时候,必然会遇到”OOP“,”OO“,”面向对象“等字眼。那么这些名词都是什么意思呢,在代码中是如何来体现的呢?我们高级程序设计语言和我们以前遇到的程序设计语言有什么区别呢,优劣势都是什么?我是觉得,了解了这些,就能理清我们现在的工作。(以C++为例) 1 . 低级程序设计语言(以C为例) C语言相对于C++其实是低级程序设计语言,我们在使用C语原创 2018-01-11 11:50:16 · 187 阅读 · 0 评论 -
<2> 内存四区和函数的调用模型
1 . 内存四区 1 . 1 内存四区图 如下图,这是操作系统在执行程序时的分配内存情况,内存管理将内存分为四个部分:堆、栈、数据区域、代码区域。 当编译器执行代码的时候,首先是从硬盘中将代码加载到内存中,然后操作系统将代码分为4个部分:堆、栈、数据区域、代码区域。 堆:由程序员动态分配内存,并且手动释放。如果程序员不进行手动释放的操作,这部分可能被操作系统回收。(malloc原创 2017-09-22 13:49:39 · 239 阅读 · 0 评论 -
线程和线程池
先上一段简单封装的Thread Class,其实主要是依靠“std::tr1::bind”和“std::tr1::function”来实现的(主要是c++11和boost的内容),以后再作详细解释为什么这个类要这样写比较合适吧以及程序的优化,比如互斥锁其实可以使用std::lock_guard来管理互斥锁。 #include <thread> #include <iostream...原创 2018-02-18 16:52:23 · 192 阅读 · 0 评论